我正在制作 RTS 游戏,整个地形就像网格(具有 x 和 y 坐标的单元格)。我有几个士兵成组(军事单位),我想将他们从 A 点发送到 B 点(A 点和 B 点之间是障碍物)。我可以使用 A* 算法解决一名士兵的问题,这不是问题。怎么做到我的那群战士总是走在一起? (我注意到当他们 split 并以不同的方式前往同一个目的地时,我注意到几个极端情况,我可以选择组长,但我不需要士兵在同一个单元格而是由领导者,例如右侧的情侣,情侣如果可能,在左侧)。过去有人解决过类似的问题吗?对算法修改有什么想法吗?
最佳答案
您需要一个群聚算法,在这种算法中,您让组的领导者遵循 A* 方向,而另一个遵循编队中的领导者。
如果您有非常大的编队,您将遇到诸如“如何让所有士兵穿过这个小洞”之类的问题,这就是您需要变得聪明的地方。
一个例子可能是在狭窄的位置强制执行单线阵型,其他例子可能涉及将组分解成更小的小队。
关于c++ - 一群士兵一起在网格 map 上移动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11310184/