如何在不知道其在基于网格的视频游戏中的位置的情况下找到特定对象的路径?

How to Find Path to a Certain Object Without Knowing Its Position in a Grid Based Video Game?

我正在开发个人项目。在这个视频游戏中有一个基于网格的移动、创建和寻路系统。以前,我使用A*寻路来使某些角色向某个已知位置移动。

但是现在我遇到了一个大问题。我的游戏中有一个角色必须去某种物体,但这个角色不知道这种物体的确切坐标。最简单的方法是实际知道这些对象的坐标,计算哪个是最近的对象并使用 A* 寻路以到达该点,但该方法似乎确实被操纵并且对于类型来说不够动态我正在制作的游戏。

所以我想知道是否有一些寻路算法可以围绕某个点(使用该算法的角色的位置)进行搜索,就像以径向方式一样,并继续搜索直到找到对象正在寻找的类型和 returns 特定对象的路径。

查找 Dijkstra 算法。它基本上在计算到目的地的最短路径之前覆盖了整个图,这与 A* 不同,它预先到达目的地。换句话说,Dijkstra 找到 ALL 从一个源到所有节点的路径,然后选择一个目的地及其最短路径或最低成本。 Wiki 上有一个很好的 GIF 说明了我在这里的意思:Click 并在 Wiki 上查找 A* 以查看其 GIF 并理解此比较。

Dijkstra 算法如何接近到达目的地的最短路径:

A* 算法如何接近到达目的地的最短路径: