对象图
2021-01-23 15:37:49 2 举报
游戏开发中玩家User和Entity实体之间的关系
作者其他创作
大纲/内容
1...1
1...n
DBTimer(数据库定时器)
- IUser _user 和玩家相当于双向指针,能相互反查对方- Timeout _timeOut 定时器类,主要是定时器做超时处理
+run 超时回调处理,处理一些比如活动的定时检测,福利大厅的定时检测,跨天检测,目前是3分钟一次其他略
Entity(连接实体类)
EntityManager(连接实体管理类)
-Pool<Entity> _pooList
+alloc() 有连接 申请资源+dealloc(Entity e) 释放连接 释放资源
1...n
1...1
ProtoBuilder(构造常用的一些proto类)
ThingTable
ThingFactory(玩家部件管理工厂类)
+createActorById 创建角色+createMonsterById 创建怪物+createEquipmentById创建装备+createUserDB 根据DB查询结果创建对应的各个部件对象+createActorDB 根据DB的角色信息加载到内存+buildUser 创建玩家的各个ThingPart部件
ChildMaker(生孩子管理器)
+makeChild 生孩子+buildChildDescent 确定孩子的血统类型和各个类型的赋予权重+makeChildImpl 随机孩子其他略
ConnectObject(网络IO连接类)
-Entity _entity-ChannelHandlerContext _ctx 连接通道-StateMachine _stateMachine连接状态机
+channelActive 有连接,初始化网络通道+channelInactive 断开连接+channelRead0 有网络IO输入,处理输入的协议+sendMsg 向客户端发送消息到玩家当前通道+gotoState 状态机状态更新+getEntity 获取连接实体+setEntity 设置连接实体,一般是在网络连接开始会调用此接口
StatusFactory(战斗状态管理工厂)
+init+createCondtion
TimerServer(定时任务处理器)
EventServer
实体连接管理类,对于服务器,有新的TCP连接或断开,都通过此类来管理,以后的相关协议处理也都是通过此类 获取对应的连接实体来处理逻辑
User(玩家类实例)
-Entity _entity; 和实体类是相当于双向指针,可以相互反查对方-DBTimer _dbTimer DB定时器,保存记录-Actor _newActor 玩家的主角信息,一般是在登陆的时候或者第一次创建角色的时候设置-UserIdxEntity _platformInfo 玩家登陆的基础信息,通数据库里WzlLogin.user_idx-boolean _needIdCard 是否需要实名认证,注意这个值是从LoginConfig.xml里的CardStatus读取的,-1表示不需要实名认证-UserData userData 存放玩家的属性信息,可参考枚举值PropID里的属性-Battle battle 当前战场的数据信息
UserManager
+addUser(IUser user) +removeUser(IUser user)+getUsersByES(ExecutorService es)
0 条评论
下一页