0

在许多 A* Start Pathfinding 教程中,最后一部分总是这样;

保存路径。从目标方格向后工作,从每个方格到其父方格,直到到达起始方格。那是你的道路。

我真的不明白我应该做什么来在我的 A * 星寻路中实现这一点。我正在使用的当前方法如下;我保存路径,反转它,再次运行路径查找器,但我通过检查它们是否在原始路径列表中来获取相邻节点,如果它们在列表中则添加它们。

这种方法的问题是我有时会遇到一些奇怪的路径。

4

2 回答 2

2

您只需要为您访问的节点保留一张“来自”地图。

当您到达目标时,您可以通过在节点上递归轮询“来自”直到该节点成为源节点来返回源节点。

请注意,这将为您提供相反的路径。您只需反转此路径,即可获得从源到目标的最短路径。

您不必再次运行最短路径算法。

于 2011-02-19T23:00:22.807 回答
1

如果您还没有阅读此内容,请查看: http ://theory.stanford.edu/~amitp/GameProgramming/

这是我为游戏实现 A* 时的资源。你提到的“父母”广场不是一个好名字。正如 turbovince 提到的,它不是“父”节点,而是您来自哪里。每个节点都有一个引用,因此当您最终到达目标时,您应该能够将这些引用遍历回原点。

于 2011-02-19T23:07:53.380 回答