路径在简单的网格中找到,没有障碍物

时间:2011-06-20 11:11:09

标签: algorithm actionscript shortest-path

我想在As3中找到一个简单的算法,在简单的网格中找到最短的路径,我需要完整的路径而不是唯一的两个点或长度。

点击此处查看图片:http://screencast.com/t/GmR5YaO4L

所以我需要从A到B的路径中的网格的所有平方数。

1 个答案:

答案 0 :(得分:3)

虽然A *在没有障碍时有点矫枉过正,但你可以使用它,因为我在AS3中为它编写了一个库:http://www.newarteest.com/flash/astar.html


编辑:如果你不到100%确定寻路将永远不会有障碍,那么我仍然推荐A *,因为这给你最大的灵活性,但在你的具体情况下,你很容易找到没有障碍的路径,因为你只能水平移动一次然后垂直移动(或者相反移动),而不是对角移动。

首先减去位置的x和y分量,以确定哪条路更长并开始向该方向移动。然后当物体在该轴上处于相同位置时,切换到另一个方向移动。

根据您的需要,您可以轻松地构建一个循环或递归函数,在遍历它之前找到整个路径,但在不知道整个路径的情况下将对象移动到正确的方向可能更简单。虽然找到了你需要遍历所有节点的路径,但是你可以避免两次遍历节点。