JME-Jbullet物理问题

时间:2010-03-14 18:29:40

标签: java bulletphysics jmonkeyengine

我目前正在使用JME-Jbullet物理引擎,并且遇到了我的地形问题。

我有2个扁平的盒子,一个用于地板,另一个用作斜坡。问题如下:

使用以下代码:

Box slope = new Box("Slope", new Vector3f(0, -1, 0), 10f, 0f, 15f);
PhysicsNode pSlope = new PhysicsNode(slope, CollisionShape.ShapeTypes.MESH);
pSlope.setMass(0);
pSlope.getLocalRotation().fromAngleNormalAxis( 0.5f, new Vector3f( 0, 0, -1 ) );

在应用旋转之前,该框表示正常,如果另一个对象掉在顶部,则它们会正确碰撞。然而,在旋转之后,盒子被旋转,但是它的“物理”不会改变,所以当一个物体掉落在似乎是斜坡的顶部时,就好像旋转从未发生过一样。

有没有办法更新渐变,以便当一个物体掉落到它上面时,它会向下滑动?

感谢。

3 个答案:

答案 0 :(得分:1)

你还记得用update方法更新物理世界吗?

public void update(float tpf) {
    super.update(tpf);
    pSpace.update(tpf);
}

其中pSpace来自PhysicsSpace pSpace=PhysicsSpace.getPhysicsSpace();

答案 1 :(得分:0)

答案 2 :(得分:0)

javadocs

所示
  

getLocalTranslation()。set()不设置物理对象位置,使用setLocalTranslation(),同样适用于getLocalRotation()

我猜想你需要调用pSlope.setLocalRotation(...)而不是获得轮换并将其修改到位。