java Box2d加速和限制车轮速度
我正在制作安卓游戏,使用box2d作为物理工具,我有车辆,车轮通过车轮接头连接到主车身。现在,我正在寻找一种适当的方法来加速这些车辆,并将其速度限制在某个值,目前我正在采用这种方法:
public void accelerate(int direction)
{
if (Math.abs(wheel1.getAngularVelocity()) < maxSpeed)
{
wheel1.applyAngularImpulse(accelerateRatio * direction);
wheel1.applyAngularImpulse(accelerateRatio * direction);
}
}
其中:
- 车轮1和车轮2是我的车轮车身李>
- int方向是我们想要加速的方向(1右,-1左)
- 加速度-加速度比,例如10李>
- maxSpeed—车辆的最大速度,如12等
我不认为这是一个完美的解决方案,特别是因为它有恼人的错误,而让我们说加速右,而不是加速左,车辆必须首先减速,因为有检查的最大速度
# 1 楼答案
如果有办法检查车轮旋转的当前方向,那么您应该仅在尝试加速时检查它是否为最大速度。正如你所说,现在你检查最大速度,如果你正在加速和减速
# 2 楼答案
您可以根据当前速度和所需速度调整
accelerateRatio
这样,如果所需的速度沿相反的方向,你会得到更大的减速度,这有助于你更快地停车