战斗流程 玩家所在agent服务发起战斗请求,获取动态的战斗服务,由战斗池服务根据唯一key分配一个相对空闲的战斗服务返回 玩家所在agent服务注册到该战斗服务中,在战斗服务中创建playerObj,并与agent的玩家对象绑定,战斗的协议由agent服务转发到战斗服务处理 agent构造战斗所需要的数据传递到战斗服,由战斗服根据类型创建战斗对象和实体对象 战斗结束后,通...
九宫格 把整个场景划分为多个格子,每个格子存储对应坐标范围的对象集合。 数据结构 场景网格使用二维数组(随机访问)存储对应xy坐标的对象链表(频繁插入删除),若地图的规格大小为300*300,一个格子的大小为30,则有10*10个格子。 使用map存储entityId和对象的数据,便于获取对应对象。 对象的视野半径最大为1个格子的大小,但也不能太小,因为需要预留...
十字链表 根据2d地图坐标系将其分成x轴和y轴两个双向链表,如果是3d地图,则需要多维护一条代表高度的双向链表。对象按照坐标值从小到大相应的排列在相应的坐标轴上面。 数据结构 对象的视野半径必须固定最大视野范围,例如坐标系+/-3,在对象进入,移动,离开时作为遍历xy链表的范围。判断是否在视野范围时,需要分别遍历x、y两轴,再求两轴的交集。 aoi对象只存储enti...
九宫格AOI
-