我按照xoppa在libGdx的子弹头测试中所示的方式设置了一个btRaycastVehicle。当车辆处于低速时,它才能正常工作。但是随着车辆速度的不断提高,底盘和车轮趋于分离。车轮到车轮和车轮到底盘之间的距离增加,之后车辆的行为方式不正确。然后,整个车辆有时会绕着一个轴旋转。
发布于 2016-07-07 22:07:43
我最近也遇到了同样的问题。问题似乎是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);
}
}现在,所有变换都会同时更新,并且轮子会附着在底盘上。
https://stackoverflow.com/questions/37681096
复制相似问题