algorithm - 避免踏入熔岩圈

标签 algorithm collision-detection

<分区>

我想弄清楚如何为游戏编写 AI 回避算法,使其不踩到熔岩区域。与熔岩物体中心的安全距离是静态的 25 范围。 如果它只是 1 个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动 x 范围,直到它离开 25 范围。

但是因为可以有超过 1 个熔岩对象,每个对象都有 25 范围的安全半径。需要考虑所有 3 个因素,否则它可能会从 1 转移到另一个。

如有任何帮助,我们将不胜感激。

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/

相关文章:

最多8个元素的php随机配对

mongodb - 多边形重叠百分比

swift - 我如何设置才能只有我的玩家和一个对象具有物理主体?

arrays - 算法找到最常出现的长度为 3 的字符串序列

arrays - 数字的计数集在整数数组中具有相同的差异

c - Seg Fault,可能的数组指针问题(Radix Sort Implementation)

python - 在 Pygame 中检测多边形和矩形之间的碰撞

java - 像素完美的圆形和 Sprite 之间的快速碰撞检测

c++ - GJK 算法陷入不同 Voronoi 区域案例的循环中

algorithm - 八叉树 - 移动物体会影响哪些细胞?