Mat*_*zen 5 c# xna physics path-finding game-physics
我正在设计一个塔防游戏,为此我使用A*寻路算法从我的产卵区到达我的目的地.
这里的问题是所有单元堆叠,看起来不太好看.有没有办法可以让他们以某种方式组成团体,如果没有足够的空间,可以传播更多?
该算法可以使所有单元一次移动一个图块.
我的一个朋友曾经为你曾经听过的着名的第一人称射击游戏设计人工智能设计讲述了他们的寻路算法如何产生假看的行为.你会在一个受限制的空间中向一群敌人扔一枚手榴弹,他们都会碰到对方试图让所有人都进入单一出口的有效路径.它显得愚蠢,打破了幻觉.
他们没有在更好的寻路上燃烧宝贵的处理器周期,而是增加了一种启发式方法,即如果一群敌人正在逃离,并且一个敌人在短时间内连续两次撞到另一个敌人,则敌人不再试图逃跑,而是做一个鸭子 - 和 - 覆盖,然后通常被手榴弹杀死.这对玩家来说非常令人满意,而且看起来更加逼真.
也许你可以在这里做类似的事情.如果太多的单位最终走向相同的路径并且相互碰撞,并且看起来不切实际,那么你可以做一些便宜而容易的事情来检测情况并改变动画吗?
您可以使用群体行为让它们遵循相同的一般路径,但不会相互堆叠。MS在这里提供了一个XNA示例: http://xbox.create.msdn.com/en-US/education/catalog/sample/flocking