基于zinx框架实现的mmo游戏
基础协议
MsgID | Client | Server | 描述 |
---|---|---|---|
1 | - | SyncPid | 同步玩家本次登录的ID(用来标识玩家) |
2 | Talk | 世界聊天 | |
3 | MovePackege | 移动 | |
200 | - | BroadCast | 广播消息(Tp 1 世界聊天 2 坐标(出生点同步) 3 动作 4 移动之后坐标信息更新) |
201 | - | SyncPid | 广播消息 掉线/aoi消失在视野 |
202 | - | SyncPlayers | 同步周围的人位置信息 |
网络法实现AOI算法
场景相关数值计算
- 场景大小: 250*250 , w(x轴宽度) = 250,l(y轴长度) = 250
- x轴格子数量:nx = 5
- y轴格子数量:ny = 5
- 格子宽度: dx = w / nx = 250 / 5 = 50
- 格子长度: dy = l / ny = 250 / 5 = 50
- 格子的x轴坐标:idx
- 格子的y轴坐标:idy
- 格子编号:id = idy *nx + idx (利用格子坐标得到格子编号)
- 格子坐标:idx = id % nx , idy = id / nx (利用格子id得到格子坐标)
- 格子的x轴坐标: idx = id % nx (利用格子id得到x轴坐标编号)
- 格子的y轴坐标: idy = id / nx (利用格子id得到y轴坐标编号)