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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Est-ce que quelqu'un pourrait m'aider svp ?
Partager