如何在 JmonkeyEngine3 中使用物理控制旋转空间?
how to rotate a spatial with physics control in JmonkeyEngine3?
我从资产管理器加载了一个 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
class 有一个 setViewDirection()
方法。
你真的应该切换到 BetterCharacterControl
,因为它有更好的集成。我不知道为什么 CharacterControl
没有被弃用。
在一般物理对象中,它们有一个单独的 "life",因为它们位于 Bullet PhysicsSpace 中。例如另一个常见的物理控制:RigidBodyControl
class 有一个 setPhysicsRotation(Quaternion rotation)
方法(就像它有一个 setPhysicsLocation()
方法一样)。
更多信息在 wiki 中(尽管它引用了 CharacterControl
):
Walking Character
我从资产管理器加载了一个 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
class 有一个 setViewDirection()
方法。
你真的应该切换到 BetterCharacterControl
,因为它有更好的集成。我不知道为什么 CharacterControl
没有被弃用。
在一般物理对象中,它们有一个单独的 "life",因为它们位于 Bullet PhysicsSpace 中。例如另一个常见的物理控制:RigidBodyControl
class 有一个 setPhysicsRotation(Quaternion rotation)
方法(就像它有一个 setPhysicsLocation()
方法一样)。
更多信息在 wiki 中(尽管它引用了 CharacterControl
):
Walking Character