我正在制作 android 游戏,使用 box2d 进行物理,我有车辆,轮子使用 WheelJoints 连接到主体车身。现在我正在寻找一种适当的方法来加速这些车辆,并将它们的速度限制在某个值,目前我正在这样做:
public void accelerate(int direction)
{
if (Math.abs(wheel1.getAngularVelocity()) < maxSpeed)
{
wheel1.applyAngularImpulse(accelerateRatio * direction);
wheel1.applyAngularImpulse(accelerateRatio * direction);
}
}
在哪里:
- wheel1和wheel2是我的轮体。
- int direction 是我们想要加速的方向(1 右,-1 左)
- AccelerateRatio - 加速度的比率,例如 10。
- maxSpeed - 车辆的最大速度,例如 12 等。
我不认为它是一个完美的解决方案,特别是因为它有烦人的错误,而让我们说向右加速,而不是向左加速,车辆必须首先减速,因为有最大速度的检查。