我最近开始使用 jMonkey 引擎,非常好。但是我在尝试实现相对重力时遇到了困难。
我想让行星围绕彼此运行(不一定在完美的圆形轨道上,取决于速度)。所以每个对象都应该影响其他对象。
我现在拥有的:
关闭全球重力
bulletAppState.getPhysicsSpace().setGravity(Vector3f.ZERO);
初始化球体并添加到物理空间
Sphere sphere = new Sphere(50, 50, 5);
Geometry sun = new Geometry("Sun", sphere);
sun.setMaterial(stone_mat);
rootNode.attachChild(sun);
sun.setLocalTranslation(0, 0, 0);
sunPhysics = new RigidBodyControl((float) (50*Math.pow(10, 5)));
sun.addControl(sunPhysics);
bulletAppState.getPhysicsSpace().add(sunPhysics);
Geometry mercury = new Geometry("Mercury", sphere);
mercury.setMaterial(stone_mat);
rootNode.attachChild(mercury);
mercury.setLocalTranslation(15f, 0, 0);
mercuryPhysics = new RigidBodyControl((float) (5));
mercury.addControl(mercuryPhysics);
bulletAppState.getPhysicsSpace().add(mercuryPhysics);
我注意到 RigidBodyControl 类中有 setGravity 方法,但它只是设置方向。所以物体会一直走下去,直到它消失。
我真的很期待答案。