<分区>
我想弄清楚如何为游戏编写 AI 回避算法,使其不踩到熔岩区域。与熔岩物体中心的安全距离是静态的 25 范围。 如果它只是 1 个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动 x 范围,直到它离开 25 范围。
但是因为可以有超过 1 个熔岩对象,每个对象都有 25 范围的安全半径。需要考虑所有 3 个因素,否则它可能会从 1 转移到另一个。
如有任何帮助,我们将不胜感激。
<分区>
我想弄清楚如何为游戏编写 AI 回避算法,使其不踩到熔岩区域。与熔岩物体中心的安全距离是静态的 25 范围。 如果它只是 1 个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动 x 范围,直到它离开 25 范围。
但是因为可以有超过 1 个熔岩对象,每个对象都有 25 范围的安全半径。需要考虑所有 3 个因素,否则它可能会从 1 转移到另一个。
如有任何帮助,我们将不胜感激。
最佳答案
If it was just 1 lava object I would calculate the distance between Player and the Object, then calculate the angle and move backwards x range until its 25 range away.
这基本上是正确的想法,您只需要扩展它。为每个熔岩圈创建一个向量。角度应该代表与圆圈的“距离”,大小代表它有多远。然后你可以将它们加在一起来表示一个转向矢量。它并不完美,但您可以对其进行调整以满足您的特定需求。
这只是最基本的原理,但该原理可以应用于各种转向,如追逐、避让、墙面跟随等。
据我所知,最好的引用资料是 Steering Behaviors For Autonomous Characters克雷格雷诺兹(BOIDS 的创始人)。该网站很旧,但信息一如既往的好。
关于algorithm - 避免踏入熔岩圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776121/