如果您想要曲线轨道,您可以使用样条曲线,它是由两个矢量端点指定的数学定义曲线。你扑通一声放下端点,然后求解它们之间的一条漂亮的曲线。搜索应该显示可以导出到源代码中的源代码或数学。这样做的好处是您可以准确地求解车辆的航向,并通过百分比计算获得路径上的下一个位置。困难的是,如果您不希望每组端点之间的步数相同,则必须进行曲线长度计算。
另一种方法是使用隐藏位图,其上绘制的路径为单像素宽曲线。您可以通过将当前位置周围的像素与行进方向矢量相匹配,然后在每一步使用 delta 函数更新矢量来找到路径中的下一个位置。我们将这种方法用于路径行驶原型,其中“车辆”正在使用操纵杆沿着各种路径“驱动”,并且在您遇到一些混淆矢量计算的交叉点之前它可以正常工作。但是,如果它是一个单向闭环,这将工作得很好,而且实现起来非常简单。您可以通过平均最后几个增量来平滑车辆的航向角。此外,每个像素都变成一个“步”,因此您的速度控制很容易。
在前一种情况下,您可以为开始/停止位置或兴趣点特别标记端点。在后者中,只需在路径上为特殊节点使用不同颜色的像素。在任何一种情况下,您显示的可能都不是基础路径数据,而是您的“公园”的一些美化表示。
只需选择最简单的方法,然后编写一个 tick() 函数,该函数将步进到下一个路径位置,并在汽车行驶时更新您的车辆方向。如果你真的很聪明,你可以做一些基于半径的碰撞处理,这样当赛道上前面的汽车停止时,汽车会自动停止。