【发布时间】:2016-06-07 13:41:05
【问题描述】:
我设置了一个 btRaycastVehicle,如 xoppa 在 libGdx 的子弹测试中所示。当车辆处于低速时,它可以正常工作。但是随着车速的不断增加,底盘和车轮往往会相互分离。车轮到车轮和车轮到底盘之间的距离增加,之后车辆以不正确的方式运行。然后整个车辆有时会绕轴旋转。
【问题讨论】:
标签: libgdx bulletphysics
我设置了一个 btRaycastVehicle,如 xoppa 在 libGdx 的子弹测试中所示。当车辆处于低速时,它可以正常工作。但是随着车速的不断增加,底盘和车轮往往会相互分离。车轮到车轮和车轮到底盘之间的距离增加,之后车辆以不正确的方式运行。然后整个车辆有时会绕轴旋转。
【问题讨论】:
标签: libgdx bulletphysics
我最近遇到了同样的问题。问题似乎是 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);
}
}
现在所有的变换都会同时更新,并且车轮会粘在底盘上。
【讨论】: