如果涉及到算法,以及我为游戏制作的插件,我是一个真正的速度狂。
速度……有点……不满意。尤其是当你开车四处行驶并且你没有按照自己的路径行驶时,必须重新计算路径..这需要一些时间,所以游戏中的 GPS 会堆积许多“错误的方式”信号(并堆积信号之后意味着更多的计算,对于每一个错误的方向移动),因为我想要一个快速、实时的 gps 系统,它会不断更新。
我将旧算法(一些简单的 dijkstra 实现)更改为 boost::dijkstra 以计算从节点 A 到节点 B 的路径
(总节点列表大约是 ~15k 节点,有 ~40k 连接,对于好奇的人,这里是地图: http: //gz.pxf24.pl/downloads/prv2.jpg (12 MB),红线中的边是节点),
但它并没有真正提高速度。(至少不明显,可能是 50 毫秒)。
存储在 Node 数组中的信息是:
The ID of the Node,
The position of the node,
All the connections to the node (and which way it is connected to the other nodes, TO, FROM, or BOTH)
Distance to the connected nodes.
我很好奇是否有人知道 C/C++ 中的一些更快的替代方案?任何建议(+代码示例?)表示赞赏!
如果有人对该项目感兴趣,这里是(源代码+二进制文件):
https://gpb.googlecode.com/files/RouteConnector_177.zip
在此视频中,您可以看到 gps 系统是什么样的:
http://www.youtu.be/xsIhArstyU8
如您所见,红色路线更新缓慢(嗯,对于我们 - 游戏玩家 - 它很慢)。
(ByTheWay:红线之间的差距很久以前就已经修复了:p)