我设法实现了*,我得到了正确的路径。
问题是我如何从头到尾重建路径,因为每个节点(从头到尾)都有父链接,但不是第一个,所以我的角色不知道先去哪里。
我正在做的是返回闭合列表并从索引0开始到x直到我到达结尾。这通常很有效,但我知道还有另一种方式。
另外,检查相邻节点的最佳方法是什么?
我已经让每个节点创建一个矩形,看它是否相交,这就是我知道它们是如何连接的。我还使用这种技术让玩家知道何时到达了一个节点。
谢谢!
答案 0 :(得分:1)
您有目标节点(只需找到它就可以缓存它。)
在树上(使用parent
字段),直到找到没有它的节点,此节点是您的根。通过上传链接找到的路径是相反顺序的最短路径。
关于BFS而不是A *
,我曾经发过similar question个问题编辑:将堆栈反转回原始堆栈的一种简单方法是在从目标到源的过程中将节点放入堆栈中,当您找到源时 - 开始弹出元素堆栈。