地图左上角的九宫格秘诀是什么叫什

工作学习:游戏场景aoi&&-&九宫格
游戏里场景aoi &-
最近把游戏里面场景aoi实现,做下笔记和记录思路,采用的是九宫格方法,简述下九宫格,每一个格子占一定长宽,九个格子包含整个屏幕(略大于客户端上一个屏幕大小),如下图:
(1,2,3,5,6,7,9,10,11)这九个格子包含一个屏幕,格子6就是角色所在的格子,这样一个角色关心的区域就是这九个格子了。
& 接着看下,场景中 进入地图,离开地图,移动三种操作的应用:
进入地图,同样上图的例子,角色切换地图进入新地图,(x,y,z)-&
格子6,可以得到当前九宫格的格子序列,(1,2,3,5,6,7,9,10,11),对着9个格子的其他玩家进行广播即可。
离开地图,只是进入地图的相反操作而已,广播角色所在的九宫格中的其他玩家即可。
移动,相对复杂些,我们可以从下图观察,假设从格子6 移动到 格子11,
很容易想到,会伴随
一些玩家离开“我”视野,一些玩家看见“我”在移动,一些玩家进入“我”的视野。其实只是两个九宫格序列的交集,差集问题(x:表示交集运算,-:表示差集运算)。
(1,2,3,5,6,7,9,10,11)x
(6,7,8,10,11,12,14,15,16) = (6,7,10,11)
(1,2,3,5,6,7,9,10,11)-
(6,7,8,10,11,12,14,15,16) &=
(1,2,3,5,9)
(6,7,8,10,11,12,14,15,16) -
(1,2,3,5,6,7,9,10,11)
=(8,12,16,15,14)
(6,7,10,11)格子序列中的玩家看见“我”在移动
(1,2,3,5,6)格子序列中的玩家离开“我”的视野
(8,12,16,15,14)格子序列中的玩家进入“我”的视野
接着,可以在九宫格的基础上再进一步优化,当角色进入一个新的格子,可以维护着两个list:ied_list,i_list
ied_list: 记录那些玩家关心“我”的操作。
i_list: &
&记录“我”关心了哪些玩家,他们在“我”的视野里面。
怎么衡量两个玩家之间的这种关系呢?我是通过计算两个玩家之间的关系权重,配合玩家之间的距离。例如:初始化两个没有任何关系的玩家权重是init_val=1000,距离是dist_val,那么他们之间权重weight=init_val-dist_val,这样就可以做到集合的聚拢了,视野可以尽可能的靠近玩家自己,并且可以自己添加其它因素,例如在同一个队伍的玩家,weight
= init_val-dist_val+team_val,简单的加减法可以做到集合自然的聚拢。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&2003-, All Rights Reserved.  本站发布的所有内容,未经许可,不得转载,详见。&2003-, All Rights Reserved.  本站发布的所有内容,未经许可,不得转载,详见。}

我要回帖

更多关于 九宫格地图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信