Jmonkey: заставь RigidBodyControl реагировать на гравитацию
Я стараюсь изо всех сил, чтобы объект упал, и до сих пор не могу даже приблизиться. Вот код, который я пытаюсь
BulletAppState bulletAppState = new BulletAppState();
cubemesh = new Box(1f,1f,1f);
Geometry something = new Geometry("cube", cubemesh);
Material bronze = new Material(assetManager,
"Common/MatDefs/Light/Lighting.j3md");
something.setLocalTranslation(0,1,0);
bronze.setTexture("DiffuseMap", assetManager.loadTexture("Textures/bronze.jpg"));
something.setMaterial(bronze);
rootNode.attachChild(something);
RigidBodyControl control = new RigidBodyControl(10f);
Vector3f direction = new Vector3f(0,-9.81f,0);
something.addControl(control);
//all the random lines i've tried
stateManager.attach(bulletAppState);
control.setGravity(direction);
bulletAppState.getPhysicsSpace().setGravity(direction);
rootNode.attachChild(something);
bulletAppState.getPhysicsSpace().add(control);
Помощь будет оценена.
1 ответ
Физика в вашем примере работает на меня. Но, используя ваш материал, я ничего не вижу, потому что нет света.
Попробуйте прикрепить Light
:
AmbientLight light = new AmbientLight();
light.setColor(ColorRGBA.White);
rootNode.addLight(light);
Попытка случайных линий не даст вам очень далеко. Я рекомендую прочитать вики jME, чтобы вы понимали, что на самом деле делают эти строки. Вот минималистичный пример, который использует Material
это не нуждается в свете:
public void simpleInitApp() {
BulletAppState bulletAppState = new BulletAppState();
stateManager.attach(bulletAppState);
Geometry something = new Geometry("cube", new Box(1,1,1));
something.setMaterial( new Material(assetManager, "Common/MatDefs/Misc/ShowNormals.j3md") );
something.setLocalTranslation(0,2,0);
something.addControl( new RigidBodyControl(10f) );
rootNode.attachChild(something);
bulletAppState.getPhysicsSpace().add(something);
}
В этом примере показан красочный падающий куб. Если это не работает для вас, возможно, что-то не так с вашей версией jME или ее настройкой (я использую jMonkeyEngine 3.1-alpha1).