在我正在使用的2D游戏中,游戏引擎可以为我提供每个单位在其视图范围内的其他单位的列表。
我想知道是否存在一种将单元划分为组的既定算法,其中每个组将由彼此“连接”(甚至通过其他单元)的所有那些单元定义。
一个例子可能有助于更好地理解这个问题(E =敌人,O =自己的单位)。首先,我将从游戏引擎获取的数据:
E1 can see E2, E3, O5
E2 can see E1
E3 can see E1
E4 can see O5
E5 can see O2
E6 can see E7, O9, O1
E7 can see E6
O1 can see E6
O2 can see O5, E5
O5 can see E1, E4, O2
O9 can see E6
然后,我应该按以下方式计算组:
G1 = E1, E2, E3, E4, E5, O2, O5
G2 = O1, O9, E6, E7
可以安全地假定该视场具有可交换属性:[如果A看到B,则B看到A]。
需要澄清的是:我已经编写了一个简单的实现,该实现在游戏引擎信息的每一行上循环,但是从它的外观来看,似乎已经足够深入地研究它并拥有各种已建立的算法(也许可以通过通过一些树状结构?)。我的问题是我找不到描述返回有用的Google匹配的问题的方法。
预先感谢您的帮助!