您的位置:首页 > 其它

游戏场景管理

2013-01-22 23:29 274 查看
先说明几个问题

1) 地图是原点是在左上角(0,0),从左向右是X轴的递增,从上到下是Y的递增。

2) 根据ZONE的大小把整张地图分割为一个个相连的ZONE,大小根据需求定,我们定为600*400(客户端最大屏幕 1600 * 900)

3) 分完之后地图就是这个样子了(每个数子就是一个ZONE,9宫格的一个格子)

0 1 2 3

4 5 6 7

8 9 10 11

4) 根据人物的坐标和ZONE的大小,就可以算出人物是在哪个格子里。

一个人物出现在地图上,把人物的obj加到所在的ZONE里,同时给附近9个格子的人广播addplayer。

比如人物出现在6,那么1,2,3,5,6,7,9,10,11里的人物就会收到广播包,人物进入他们的视野。

人物移动时,如果人物从一个ZONE跑到了另一个ZONE,把人物的obj移到另外一个ZONE了,同时

给那些离开他们视野发生deleteplayer,给进入他们视野的人addplayer,当然,那些重合的ZONE就不需处理了。

因为地图上每个ZONE都保存着进入的obj,所以广播时直接可以拿到这些obj。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: