我目前正在制作一个统一的RTS游戏,我需要一种方法来计算连续2d平面上两个点之间的最短路径,其中存在某些障碍 .
我有一个起始位置,一个结束位置和一个可以测试位置是否有效的函数 . 我需要一种算法,它返回一系列要移动的点才能到达目的地 .
我所知道的大多数路径算法如A *和IDA *都需要离散化的搜索空间 . 我自己会将飞机划分为一个网格,但我担心它会导致锯齿形图案在沿对角线移动时看起来非常不自然 . 有没有办法缓解这个问题或我可以使用的不同路径算法?它甚至不必找到绝对最短的路径,只是一条有意义的路径 .
1 回答
一种方法可能是通过仅考虑有趣的刨点点来对搜索空间进行离散化 - 障碍边界上的点,例如仅限于边界框的角,然后使用您已知的任何算法 .
另一种选择是在网格上计算,然后平滑网格上找到的最佳路径 .