游戏场景管理

先说明几个问题
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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值