我在libGdx的子弹测试中设置了一个bpRaycastVehicle,如xoppa所示。当车辆处于低速时,它可以正常工作。但随着车辆速度的不断提高,底盘和车轮往往会相互分离。车轮到车轮和车轮到底盘之间的距离增加,并且在车辆行为不正确之后。然后整个车辆有时围绕一个轴旋转。
答案 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);
}
}
现在所有变换都会同时更新,并且车轮会粘在底盘上。