明星探路

A Star Pathfinding

我已经实现了标准的 A* 寻路算法,并且它在 2D 网格上运行良好。

我的问题是,有没有一种方法可以对线条进行加权,以便它们采用 "straightest" 路径而不是当前采用的潜在最短路径。因此,线条不是采用短路径并以锯齿形模式移动,而是首先尝试找到直角。

任何指向资源或建议的链接都将不胜感激!

你是说它们会在网格上沿对角线移动吗?您所要做的就是打开节点扩展代码,同时扩展 (+1, +1)、(-1, -1)、(+1, -1) 和 (-1, +1),转它变成正交而不是基数。如果你的 A* 算法是正确的,他们会更喜欢单一的对角线移动,而不是先东后北的移动。

如果你想在更大的区域自由移动,那就略有不同并且更难做到。