Bonjour, je reprend le développement de mon bomberman et je reprend la où j'avais echouer à savoir le déplacement par case.
J'ai codé ceci pour, que lorsque la frame == 0 on puisse déplacer le joueur, et quand la frame == 7 on peut tester l'appuie des touches, sauf que la condition _animation->estLancer(), ne s'effectue pas au debut de chaque annimation.
Voici le code:
// Met à jour le joueur
void Player::update(Event &event)
{
if(!animer)
{
if(Keyboard::isKeyPressed(Keyboard::Down))
{
_position = BAS;
bouger = true;
animer = true;
}
if(Keyboard::isKeyPressed(Keyboard::Up))
{
_position = HAUT;
bouger = true;
animer = true;
}
if(Keyboard::isKeyPressed(Keyboard::Left))
{
_position = GAUCHE;
bouger = true;
animer = true;
}
if(Keyboard::isKeyPressed(Keyboard::Right))
{
_position = DROITE;
bouger = true;
animer = true;
}
if(!bouger) {_animation->arreter();}
else {_animation->jouer();}
}
else
{
if(_position == BAS)
{
_animation->setAnimation(0);
if(_animation->estLancer()) {
_caseActuel += casesX-1;
}
else if(_animation->estFini()) {
animer = false;
bouger = false;
}
}
}
}
Merci d'avance.
Je pense que l'erreur vient de :
_animation->setAnimation(0);
Je pense que ta méthode reset et met en pause ton annimation.
_animation->setAnimation(0);
if(_animation->estLancer()) {
Donc tu pauses l’animation, juste avant le test. Après, on peut difficilement faire mieux avec si peut d'information. Peut-être que le hearder pourra nous aider à t'aider ;D
Par contre le francoglish >:(