gpt4 book ai didi

c# - 使用 A* 并仍然避免碰撞?

转载 作者:太空狗 更新时间:2023-10-29 22:14:48 25 4
gpt4 key购买 nike

我正在设计一款塔防游戏,为此我使用 A* 寻路算法从重生区到达目的地。

这里的问题是所有单位都堆叠起来,看起来不太好看。有没有一种方法可以让它们以某种方式分组,如果没有足够的空间,可以分散更多?

该算法的工作原理是所有单位一次移动一个方 block 。

最佳答案

我的一个 friend 曾经为一款您可能听说过的著名第一人称射击游戏进行 AI 设计,他讲述了一个关于他们的寻路算法如何产生假 Action 的故事。你向受限空间中的一群敌人扔了一枚手榴弹,他们会互相撞在一起,试图全部走上通往单一导出的有效路径。它看起来很愚蠢,打破了幻想。​​

他们没有在更好的寻路上消耗宝贵的处理器周期,而是添加了一种启发式方法,如果一群敌人正在逃跑,并且一个敌人在短时间内连续两次撞到另一个敌人,敌人就会停止逃跑,而是躲避-and-cover,然后通常会被手榴弹炸死。这让玩家非常满意,并且看起来更加逼真。

也许您可以在这里做一些类似的事情。如果太多单位最终走向同一条路径并相互碰撞,这看起来不切实际,您是否可以做一些便宜且简单的事情来检测情况并更改动画?

关于c# - 使用 A* 并仍然避免碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com