c++ - 一群士兵一起在网格 map 上移动

标签 c++ game-engine game-physics path-finding

我正在制作 RTS 游戏,整个地形就像网格(具有 x 和 y 坐标的单元格)。我有几组士兵(军事单位),我想将他们从 A 点发送到 B 点(A 点和 B 点之间是障碍物)。我可以使用 A* 算法解决一名士兵的问题,这不是问题。如何实现我的这群士兵永远在一起? (我注意到几个极端情况,当他们分开并以不同的方式到达同一目的地点时,我可以选择小组的领导者,但我不需要那些士兵去同一个牢房而是由领导者,例如右边的一对,一对如果可能,在左侧)。过去有人解决过类似的问题吗?对算法修改有什么想法吗?

最佳答案

你想要一个蜂群算法,让群中的领头羊跟随 A* 方向,而其他领头羊跟随领头者排成队形。

如果您的编队非常庞大,您将遇到诸如“如何让所有士兵穿过这个小洞”之类的问题,这就是您需要变得聪明的地方。

一个例子可能是在狭窄的地方强制执行单线队形,其他例子可能涉及将小组分解成更小的小队。

关于c++ - 一群士兵一起在网格 map 上移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310184/

相关文章:

algorithm - 如何确保在三消游戏关卡中目标进球不是不可能的?

php - 随着时间的推移在圆圈内的反射

c++ - C++中的指针与汇编语言中的指针之间的区别?

c++ - 具有自定义散列/相等函数的 unordered_map - 函数不会被调用

c++ - 如何将基类指针数组转换为派生类

c++ - LibCds:Michael Hashmap 和 Split Order List

带有音频和粒子的 Javascript 开源手机游戏引擎?

3d - 编写我自己的3D游戏引擎

swift - 敌人受到多重伤害 - Swift、Xcode 8.2.1

ios - SpriteKit Physics 的神秘因子 150。重力和力量