8方向路径寻找算法

时间:2010-04-06 22:38:42

标签: algorithm path

我找不到正在处理的AI的正确寻路算法。

我有球员在球场上,自由移动(没有粘在网格上),但他们被限制在8个方向移动(N NE E等)

我正在努力使用A *和一个图表。但我意识到,图表上的每个节点都相距很远,并且所有边缘都具有相同的权重 - 因为节距是矩形的。并且节点的数量是巨大的(是一个很大的节距,它们能够在1个像素和另一个像素之间移动)

我认为必须有另一种算法,针对这类事情进行了优化?

4 个答案:

答案 0 :(得分:3)

我会把音调分成10x10像素网格。您的路由不必像系统的其他部分那样精细,它会使算法占用更少的内存。

正如克里斯所说,选择正确的启发式算法是让算法正常运行的关键。

答案 1 :(得分:2)

如果玩家在网格上的点之间沿直线移动,则实际上不需要使用A *。 Bresenham's line algorithm会很快提供直线路径。

答案 2 :(得分:1)

您可以根据另一种启发式对方向进行加权。因此,与基于实际距离对路径进行加权相反,您可以根据另一个因素(例如“与其他玩家的亲近程度”)来加权或缩放,这意味着玩家将偏向不会与其他玩家发生碰撞的路线。

A *算法应该能够很好地工作。

答案 3 :(得分:1)

我认为你应该尝试跳转点搜索。它是一种非常快速的8-dire路径查找算法。

以下是一篇描述跳转点搜索的blog

而且,这是它的学术论文< Online Graph Pruning for Pathfinding on Grid Maps>

此外,Youtube上还有一些有趣的视频。

我希望这会有所帮助。