java - 如何在JmonkeyEngine3中通过物理控制旋转空间?

标签 java physics jmonkeyengine

我从 Assets 管理器加载了 3D 模型,并将 CharacterControl 添加为控件。一切都工作正常,但当我尝试旋转模型时,它不起作用。

private CharacterControl player;
private Spatial model;
public static final Quaternion YAW045   = new Quaternion().fromAngleAxis(FastMath.PI/4,   new Vector3f(0,1,0));

@Override
public void simpleInitApp() {

    // add bullet app sate to state manager
    bulletAppState = new BulletAppState();
    stateManager.attach(bulletAppState);
    bulletAppState.getPhysicsSpace().enableDebug(assetManager);

this.addModel();
}

private void addModel(){
   model = assetManager.loadModel("Models/Oto/Oto.mesh.j3o");
   model.setLocalTranslation(new Vector3f(0,10,0));

    capsuleShape = new CapsuleCollisionShape(1f, 7.9f, 1);
    player = new CharacterControl(capsuleShape, 1f);
    bulletAppState.getPhysicsSpace().add(player);

   model.addControl(player);
   rootNode.attachChild(model);

   model.rotate(YAW045);
}

请帮助我。

最佳答案

理查德是对的。 CharacterControl 类有一个 setViewDirection() 方法。 您确实应该切换到 BetterCharacterControl,因为它具有更好的集成。我不知道为什么 CharacterControl 没有被弃用。

一般来说,物理对象拥有独立的“生命”,因为它们生活在 Bullet 物理空间中。例如,其他常见的物理控制:RigidBodyControl类有一个setPhysicsRotation(Quaternionrotation)方法(就像它有一个setPhysicsLocation()方法一样) .

更多信息位于 wiki 中(尽管它引用了 CharacterControl): Walking Character

关于java - 如何在JmonkeyEngine3中通过物理控制旋转空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363710/

相关文章:

java - 依赖注入(inject)框架相对于经典依赖注入(inject)的优势是什么?

java - 将 JMonkey 教程翻译成 JRuby

java - JME3 - 喷射三个以上的纹理

java - Java 和 Python 之间的多字节字符 (UnicodeEncodeError)

java - 用于确认电子邮件的 Struts2 库

java - intellij android hello world 不起作用 "Error loading preferences"

ios - SpriteKit Physics 的神秘因子 150。重力和力量

javascript - 如何将运动物理函数缩放到每秒帧数(在游戏引擎中)?

math - 数学/物理负责人的最近方法问题

java - 我可以在 Android 上使用 jmonkeyengine 吗?