1. 场景AOI
- 1)九宫格概念,参考:http://blog.chinaunix.net/uid-429659-id-5658868.html。
- 2)九宫格A -----移动-----> 九宫格B,
- 玩家每次移动都计算玩家当前坐标所在的格子,得到当前所在的九宫,这样就有新/旧九宫,也就有差集、交集、反差集
- 根据当前玩家坐标得到当前格子编号的公式
(Y-Y地图坐标原点)div 格子的宽度 * 一行的格子数 + (X-X坐标原点)div 格子的长度 + 1
- 根据当前玩家的格子编号得到九宫的公式
[XY,XY-1,XY+1,XY-一行的格子数,XY+一行的格子数,XY-一行的格子数-1,XY-一行的格子数+1,XY+一行的格子数-1,XY+一行的格子数+1]
- 对属于九宫集合A,不属于九宫集合B的玩家们,发送当前玩家离开场景协议
[XY || XY <- OldArea, lists:member(XY, NArea) == false]
- 对属于九宫集合B,不属于九宫集合A的玩家们,发送当前玩家进入场景协议
[XY || XY <- NArea