@horsepower7 前辈,俺看啦前辈的这一段——
寻路算法如下:
整个世界地图上有 622 个关键点。每个关键点同附近的若干个关键点有边相连,这样构成一个图。
寻路的过程是,先走到离出发地最近的关键点,然后按 Dijkstra 算法走到离目的地最近的关键点,再走到目的地。
这里有一个问题:光荣的程序员在写 Dijkstra 算法的时候没有做《排序》,也就是每次没有取出距离最小的节点进行距离更新。这可能仅仅增加时间复杂度,也可能使得最终计算得到的路径不是最短的。具体是怎么回事我已经不记得了……
无论如何,我们都可以通过增加一些关键点,或者改变一些关键点的位置,来改善寻路算法。但需要注意 Dijkstra 算法在不排序的情况下复杂度是 O(关键点个数的平方),所以增加太多的话会让程序变得很慢。尤其是,这个寻路算法不仅在委任的时候用到,所有 NPC 舰队的航行都是用这同一个算法。
请教horsepower7前辈,俺从特拉比松往长安挖啦一条沟。以俺理解上面前辈的解说,是不是不能在俺新挖的沟里增加关键点,实现委任和NPC也走这里的想法?