2016-06-07 98 views
0

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

回答

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); 
    } 
} 

现在所有的变换得到在同一时间更新,车轮粘在底盘上。