Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Box2d-加速和限制车轮速度_Java_Android_Box2d - Fatal编程技术网

Java 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

我正在制作android游戏,使用box2d作为物理工具,我有车辆,车轮通过车轮接头连接到主车身。现在,我正在寻找一种适当的方法来加速这些车辆,并将其速度限制在某个值,目前我正在采用这种方法:

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());
这样,如果所需的速度沿相反的方向,你会得到更大的减速度,这有助于你更快地停车