libgdx';s BTRAYCAST车辆未正确跟随底盘和车轮

libgdx';s BTRAYCAST车辆未正确跟随底盘和车轮,libgdx,bulletphysics,Libgdx,Bulletphysics,我在libGdx的子弹测试中设置了一个btRaycastVehicle,如xoppa所示。当车辆处于低速时,则其工作正常。但随着车速的不断提高,底盘和车轮往往会彼此分离。车轮到车轮和车轮到底盘之间的距离增加,之后车辆的行为不正确。然后整个车辆有时会绕轴旋转。我最近也遇到了同样的问题。问题似乎是MotionState的回调在渲染函数的不同线程上被调用。在Xoppa的示例应用程序中(供其他阅读者使用),轮子变换正在渲染线程中更新。修复方法是在MotionState的回调中执行轮子变换: @Overr

我在libGdx的子弹测试中设置了一个btRaycastVehicle,如xoppa所示。当车辆处于低速时,则其工作正常。但随着车速的不断提高,底盘和车轮往往会彼此分离。车轮到车轮和车轮到底盘之间的距离增加,之后车辆的行为不正确。然后整个车辆有时会绕轴旋转。

我最近也遇到了同样的问题。问题似乎是MotionState的回调在渲染函数的不同线程上被调用。在Xoppa的示例应用程序中(供其他阅读者使用),轮子变换正在渲染线程中更新。修复方法是在MotionState的回调中执行轮子变换:

@Override
public void setWorldTransform (final Matrix4 worldTrans) {
  transform.set(worldTrans);

  for (int i = 0; i < 4; i++) {
    vehicle.getWheelInfo(i).getWorldTransform().getOpenGLMatrix(wheels[i].transform.val);
  }
}
@覆盖
公共无效setWorldTransform(最终Matrix4 worldTrans){
transform.set(worldTrans);
对于(int i=0;i<4;i++){
vehicle.getWheelInfo(i).getWorldTransform().getOpenGLMatrix(wheels[i].transform.val);
}
}
现在所有的变换都会同时更新,轮子会粘在底盘上