如果角色想要进入主城,数据加载与初始化就不说了,包含角色的位置、方向、移动速度等信息,加载的数据有场景加载等,那么角色是怎样进入主城的?
首先,我们可以想象的到,如果要进入主城,必须触发一系列的事件,下面总结一下都触发了什么
- 点击进入游戏后,客户端向服务器发送当前角色进入主城的请求
- 服务器的UserService接收到请求后
- 服务器的UserService进行数据检验(防止外挂)
- UserService 将此角色的数据初始化,数据包括,坐标、方向、速度、哪张地图等,通过协议工具进行封装,发送到客户端
- 由于Uservice关心的是单个角色的请求与响应,所以需要另外的Service来执行地图中所有角色对于地图中新添加的角色的响应(包括当前要进入地图中的角色)
- 2.2结束之后,通过MapService向当前角色所进入的地图中的所有角色发送消息,有新的角色进入当前地图了
- 客户端接收到UserService的反应消息(2.0 response)并不做任何反应, (我们关心的是服务器MapService的消息)
- 客户端接收到服务器MapService的消息后,加载地图数据、实例化所有当前地图的角色(包括自己)、并且把一些必要的组件添加到当前的角色中。