我找不到正在处理的AI的正确寻路算法。
我有球员在球场上,自由移动(没有粘在网格上),但他们被限制在8个方向移动(N NE E等)
我正在努力使用A *和一个图表。但我意识到,图表上的每个节点都相距很远,并且所有边缘都具有相同的权重 - 因为节距是矩形的。并且节点的数量是巨大的(是一个很大的节距,它们能够在1个像素和另一个像素之间移动)
我认为必须有另一种算法,针对这类事情进行了优化?
答案 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上还有一些有趣的视频。
我希望这会有所帮助。