[libgdx]animations gauche-droite d'un vaisseau spatial 2d
Bonjour, j'essaie de programmer un jeu 2d avec libgdx.
Le joueur controle un vaisseau spatial au clavier (gauche-droite) et chaque mouvement est animé, c'est à dire que lorsque le vaisseau tourne à gauche, droite, ou reste immobile, une animation différente est jouée :
Code:
1 2 3
| spaceshipAnimation = new Animation(0.025f, spaceshipFrames); <= animation au repos
spaceshipAnimationLeft = new Animation(0.025f, spaceshipFramesLeft); <= anim tourne à gauche
spaceshipAnimationRight = new Animation(0.025f, spaceshipFramesRight); <= anim tourne à droite |
Malheureusement les animations pour tourner à gauche ou droite ne jouent pas correctement (seule l'image finale de l'animation est affichée directement). Et je ne comprends pas le principe de "getKeyFrame" (la doc de l'api est obscure). Voici la portion de code :
Code:
1 2 3 4 5 6 7 8 9
| if(Gdx.input.isKeyPressed(Keys.LEFT)) {
spaceship.x -= spaceshipSpeed * Gdx.graphics.getDeltaTime();
spaceshipAnim = spaceshipAnimationLeft.getKeyFrame(stateTimeSpaceship, false);
} else if(Gdx.input.isKeyPressed(Keys.RIGHT)) {
spaceship.x += spaceshipSpeed * Gdx.graphics.getDeltaTime();
spaceshipAnim = spaceshipAnimationRight.getKeyFrame(stateTimeSpaceship, false);
} else {
spaceshipAnim = spaceshipAnimation.getKeyFrame(stateTimeSpaceship, true);
} |
L'animation au repos est ok, mais à gauche ou droite, seule la frame finale est affichée (sans passer par l'animation progressive frame par frame).
Est-ce que quelqu'un pourrait m'aider svp ?