1 玩家状态转换图:
2 状态分析:
3 类图实现,状态转换的实现
- 玩家身上绑定一个PlayerStateManager, 这个类用来管理玩家身上的状态。管理玩家的登录、退出、切换场景等大状态。
- state:玩家当前处于的状态
- newState:到期后返回的状态
- deadLine:状态到期时间
- exitCallback:到期后的回调函数
- canProcess():判断当前状态下是否能处理指定类型的客户端发送来的数据。如在init、connected状态下只能处理:CG_Player_LOGIN和CG_Player_Cookie_login消息
- needSend(): 是否要向当前状态下的玩家发生消息。
- enterState():玩家进入状态。
- onHeartBeat():在我玩家心跳中去检查是否到期,到期后并执行状态退出callback方法。