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