Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 避免踏入熔岩圈_Algorithm_Collision Detection - Fatal编程技术网

Algorithm 避免踏入熔岩圈

Algorithm 避免踏入熔岩圈,algorithm,collision-detection,Algorithm,Collision Detection,我试图找出如何为游戏编写一个AI避免算法,以避免踩到熔岩区域。距离熔岩对象中心的安全距离为静态25范围。 如果它只是一个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动x范围,直到距离它25范围 但是,因为每个熔岩对象的范围安全半径可以超过1个。所有3个都需要考虑,否则它可能会从1移动到另一个 任何帮助都将不胜感激 如果它只是一个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动x范围,直到距离它25范围 这基本上是正确的想法,你只需要扩展它。为每个熔岩圈创建一个向量

我试图找出如何为游戏编写一个AI避免算法,以避免踩到熔岩区域。距离熔岩对象中心的安全距离为静态25范围。 如果它只是一个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动x范围,直到距离它25范围

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

任何帮助都将不胜感激

如果它只是一个熔岩对象,我会计算玩家和对象之间的距离,然后计算角度并向后移动x范围,直到距离它25范围

这基本上是正确的想法,你只需要扩展它。为每个熔岩圈创建一个向量。角度应表示距离圆的“距离”,大小表示距离圆的距离。然后你可以把这些加在一起表示一个转向矢量。它不是完美的,但是你可以调整它来很好地满足你的特殊需求

这只是简单的基础,但这一原理可以应用于所有类型的转向,如追击、避让、跟墙等


我所知道的最好的推荐信是克雷格·雷诺兹(BOIDS的创始人)。这个网站很旧,但信息还是和以前一样好。

你对lava对象有上限吗。它们都是完全相同的大小?是否要计算到目标点的路径(例如最小长度路径),避免在距离任何熔岩质心25以内?或者你只是想计算一条路径(比如说最小长度的路径),假设你现在在一个熔岩圈中,那么它能让你脱离所有熔岩圈吗?算法的期望“输出”是什么?是否为是/否(例如安全/不安全),与不安全设备的最小距离?移动的方向?搬家的规模有多大?它是一个网格还是一个连续的景观?