Cocos2d - 以不同的速度在弯曲的路径中移动物体

时间:2012-07-20 02:14:10

标签: cocos2d-iphone curve

我正在尝试开发一种游戏,汽车沿着道路行驶,并根据交通灯的信号停下来。他们有不同的速度。有时汽车需要减速才能不会撞到领先的汽车。他们需要停在红灯处。它们必须转弯等。当使用直线交叉道路时,这一切都相对容易。但是,如何沿着弯曲的路径移动汽车/汽车?到目前为止,这很简单,因为我只是使用汽车的x或y位置。但这一次并非如此,两个坐标似乎都是将它向前移动所必需的。在直道上,我可以给汽车任意速度,它将沿着x或y轴以该速度移动。但是,如果必须考虑两个坐标,我该如何确定速度?在这种情况下,加速和减速也是我的错误。谢谢。

1 个答案:

答案 0 :(得分:2)

虽然this is about moving a train over a freeform track,但相同的问题和原则适用于在自由式道路上行驶的汽车。实际上,汽车可能更容易,因为他们不需要100%准确地坚持他们的轨道。

简而言之:这不容易,但可行。它的难易程度取决于你希望你的汽车看起来多么逼真,并找到要切割的角落。

在你的情况下,汽车应该只遵循一条路径(一系列点)。由于CCActions对频繁的方向/速度变化不利,因此您应该使用自己的检测路径点并前往下一个路径的系统。沿着bezier曲线的移动不会让你的牌以恒定的速度移动,这排除了CCBezier *的行动。