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).

Другие вопросы по тегам