libgdx' s btRaycastVehicle没有正确跟随底盘和车轮

时间:2016-06-07 13:41:05

标签: libgdx bulletphysics

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

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题。问题似乎是MotionState的回调是在与渲染函数不同的线程上调用的。在Xoppa的示例应用程序(here中,对于任何其他人一起阅读),轮转换正在渲染线程中更新。解决方法是在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);
  }
}

现在所有变换都会同时更新,并且车轮会粘在底盘上。