在许多A * Start Pathfinding教程中,最后一部分总是这样;
保存路径。从目标广场向后工作,从每个广场前往其父广场,直到您到达起始广场。那是你的道路。
我真的没有得到我想要在我的A *星寻路中实现这一点。我目前使用的方法如下:我保存路径,反转它,再次运行路径查找器,但我通过检查它们是否在原始路径列表上并在列表中添加它们来获取相邻节点。
这种方法的问题是我有时会遇到一些奇怪的道路。
答案 0 :(得分:2)
您只需要为您访问的节点保留“来自”地图。
当你到达目标时,你可以通过递归轮询节点上的“来自”直到节点是源来回到源节点。
请注意,这将为您提供相反的路径。您只需反转此路径,即可获得从源到目标的最短路径。
您不必再次运行最短路径算法。
答案 1 :(得分:1)
如果你还没有看过这个,请看看: http://theory.stanford.edu/~amitp/GameProgramming/
当我为游戏实施A *时,这是我的资源。你提到的“父母”广场不是一个好名字。正如turbovince所说,它不是“父”节点,而是你来自哪里。每个节点都有一个来自它的引用,所以当你最终落在目标上时,你应该能够将这些引用遍历到原点。