什么是良好的基于​​2D网格的路径寻找算法?

时间:2013-06-15 23:45:58

标签: javascript html5 path-finding

我目前正在使用HTML5< canvas>在Javascript中编写2D游戏。元件。它很顺利,但我遇到了一个问题。

我的游戏的关卡设计是一个网格(所以路径成本从一个单元格移动到北/南/东/西单元格为1),各种障碍占据网格中的不同位置 - 很像迷宫,但是有更多的摆动空间。每个单独的级别大约为400×200个单元格。

我正在尝试实施一个无论在哪里寻找玩家的敌人,但是我无法尝试翻译其中一种寻路算法以适应我的情况。我遇到的大多数(如A *和Dijkstra)似乎最适合3D或更复杂的2D情况。我想知道是否有可能大大简化这些算法以更好地适应我的目的,或者如果深度优先搜索的东西在给定级别大小的情况下会更有效。

3 个答案:

答案 0 :(得分:15)

A *是一种非常常见的2D寻路算法。如果不熟悉寻路,可能需要一点时间来围绕正在发生的事情,但这并不是非常复杂。您可能只是在查看别人的示例代码,该代码是为比您想要的更复杂的应用程序开发的。有a good tutorial for understanding the algorithm here

答案 1 :(得分:7)

检查出来https://github.com/qiao/PathFinding.js它有很多恶魔和路径查找算法。

答案 2 :(得分:2)

EasyStar.js是一个很好看的图书馆,似乎可以做你想做的事情。我自己没有使用它,但项目的github页面上的文档看起来相当不错,这可能是我在你的位置上选择的。