我很惊讶我在网上找不到这个,也许我只是不知道要搜索的正确术语。
我正在制作一个自上而下的赛车游戏,并想知道跟踪赛道周围汽车进度的最佳方法是,即。在路线周围的任何给定点告知哪些车辆在其他车辆之前,并且还确保完整的圈数等等。该路线被定义为外部和内部轨道边界的一系列坐标。
我可以想到几种方法 - 例如在每个角落放置检查站,并通过其在前一个和下一个检查点之间的位置获得汽车的进展 - 但这似乎并不特别优雅或强大。这样做有“标准”的方式吗?还是只是更好的方式?
答案 0 :(得分:3)
这是我的建议 - 它可能不是绝对准确的,但应该足以满足你的需要。
首先定义球场的中心轴 - 因为你的球场似乎由一系列直线段组成,这可能是与球场边界等距的线。现在跟踪一条线上的进度比跟踪某些2D的进度更容易,因此我建议你在该中心轴上投射汽车的注意事项。我认为简单的正交投影在这里会做得最好。只需在中心轴上找到最接近汽车位置的点,并将其用于跟踪进度。
计算中心轴的总长度,然后计算沿中心轴的总长度,直到每辆汽车的投影为止。这会给你汽车的进步。如果总长度为T且直到投影为t的距离,那么汽车将超过课程的t/T
或课程的t*100/T
%。