计划制作 2D RTS,我试图了解 Astar 的工作原理。 事实上,我找到了解释如何将 Astar 与二进制堆耦合进行优化的文章,以及利用路径对称性的算法,如 Jump Poin Search algorithm . 我试过implement跳跃点搜索,它运行良好。我什至用 MovingAI 的 map 做了一些基准测试。
但是有一个问题。允许对角线移动时一切正常。禁用时,不返回任何路径...
它可能与我实现它的方式有关,然后我都在问......一般来说,你将如何强制算法(JPS)搜索仅涉及直线移动(而不是对角线移动)的路径以达到一个目标?
最佳答案
跳跃点搜索需要启用对角线才能工作。在状态算法中,这是它的局限性之一。此外,您将无法区分您的地形(泥土 = 对移动的惩罚等),因为这会破坏对称性。我建议你坚持 A* 并尝试通过地形呈现(网格、航路点)获得性能。或者检查 HPA*。
关于algorithm - 寻路 : Jump Point Search - Straight Moves vs Diagonal Moves,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772742/