【发布时间】:2011-06-20 19:36:43
【问题描述】:
我想要在 As3 中找到一个简单网格中的最短路径的简单算法,我需要完整的路径,而不是唯一的两个点或长度。
在此处查看图片:http://screencast.com/t/GmR5YaO4L
所以我需要从 A 到 B 的路径中的网格的所有平方数。
【问题讨论】:
标签: algorithm actionscript shortest-path
我想要在 As3 中找到一个简单网格中的最短路径的简单算法,我需要完整的路径,而不是唯一的两个点或长度。
在此处查看图片:http://screencast.com/t/GmR5YaO4L
所以我需要从 A 到 B 的路径中的网格的所有平方数。
【问题讨论】:
标签: algorithm actionscript shortest-path
虽然 A* 在没有障碍物的情况下有点矫枉过正,但你不妨使用它,因为我在 AS3 中为它编写了一个库:http://www.newarteest.com/flash/astar.html
编辑:如果您没有 100% 确定寻路永远不会遇到障碍,那么我仍然推荐 A*,因为这可以为您提供最大的灵活性,但在您的特定情况下,很容易找到没有障碍的路径,因为您只水平移动一次,然后垂直(或相反)移动一次,而不是对角线。
首先减去位置的 x 和 y 分量以确定哪条路更长,然后开始朝那个方向移动。然后当对象在该轴上的相同位置时,切换到另一个方向移动。
根据您的需要,您可以轻松构建一个循环或递归函数,在遍历之前找到整个路径,但在不提前知道整个路径的情况下将对象沿正确方向移动可能更简单。在找到路径时,无论如何您都需要遍历所有节点,这样您就可以避免必须遍历节点两次。
【讨论】: