Move a spaceship

Hi all !

I’m trying to get a model move as a spaceship.

I can go left and right and the camera follows the spaceship but I don’t know how I can make my spaceship go up and down with the appropriate arrow keys.

Here’s the code I’m using :

@Override
public void simpleUpdate(float tpf) {
Vector3f camDir = cam.getDirection().mult(0.2f);
Vector3f camLeft = cam.getLeft().mult(0.2f);
camDir.y = 0;
camLeft.y = 0;
viewDirection.set(camDir);
flyDirection.set(0, 0, 0);
if (left) {
viewDirection.addLocal(camLeft.mult(0.02f));
}
if (right) {
viewDirection.addLocal(camLeft.mult(0.02f).negate());
}
if (up) {
characterModel.rotate(-0.002f, 0, 0);
}
if (down) {
characterModel.rotate(0.002f, 0, 0);
}
//flyDirection.addLocal(camDir);
characterControl.setWalkDirection(flyDirection);
characterControl.setViewDirection(viewDirection);

}

The up and down keys only rotate my model but the camera don’t rotate with it.

Any help would be appreciated !

Thanks

Edit : An example of what I want to do : http://www.youtube.com/watch?v=8CRUoklrW1I&feature=player_embedded

Try this:
cam.getUp().normalize().mult(0.2f);
// or
cam.getWorldRotation().mult(Vector3f.UNIT_Y).normalize().mult(0.2f);

Also basics of vector math will help:
https://wiki.jmonkeyengine.org/legacy/doku.php/jme3:math_for_dummies

I think I manage to do it :

@Override
public void simpleUpdate(float tpf) {
Vector3f camDir = cam.getDirection().clone().mult(0.2f);
Vector3f camLeft = cam.getLeft().clone().mult(0.2f);
Vector3f camUp = cam.getUp().clone().mult(0.2f);
//camDir.y = 0;
camLeft.y = 0;
viewDirection.set(camDir);
flyDirection.set(0, 0, 0);
if (left) {
viewDirection.addLocal(camLeft.mult(0.01f));
}
if (right) {
viewDirection.addLocal(camLeft.mult(0.01f).negate());
}
if (up) {
viewDirection.addLocal(camUp.mult(0.005f));
}
if (down) {
viewDirection.addLocal(camUp.mult(0.005f).negate());
}
flyDirection.addLocal(camDir);
characterControl.setWalkDirection(flyDirection);
characterControl.setViewDirection(viewDirection);

}

But there is still a little problem : my ship can’t make an whole looping. I don’t really know where it blocks. Any idea ?

You can check my spaceShip example:
http://code.google.com/p/jme-simple-examples/source/browse/#hg%2FJMESimpleExamples%2Fsrc%2Fcom%2Fspaceship

Possibly it will help in some way.

[video]http://www.youtube.com/watch?v=uvfu5SLugG8&feature=player_embedded[/video]

Wow, this is just perfect ! Thank you very much!