|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Alexis Étudiant Inscription : avril 2012 Messages : 8 ![]() |
Bonjour à tous;
Après avoir fait quelques jeux basiques en SDL, je me suis lancé dans le codage de petits détailles qui donnent vraiment du peps au jeu Ainsi je me suis mis à bosser sur l'animation des sprites. ![]() Pour simplifier les testes et les explications, nous allons gérer que une seule direction avec un minimum d'image, ( 3 frames) Nous avons donc une plaquette de 3 sprites, dont la frame 0 représente le personnage bougeant la jambe gauche, la frame 1 le personnage immobile et la frame 3 le personnage bougeant la jambe droite. Dès que le joueur appuie sur la flèche du mouvement, on prend le temps à ce moment précis dans timeX. On change de frame et on bouge l'image du personnage seulement si timeX-timeY > 200, pour rentrer dans le cycle de l'animation on fait prendre à la variable timeX, la valeur de timeY (je sais pas si vous me suivez Voila donc le code que j'ai pondu: Code :
J'ai voulu le modifier pour que le personnage puisse être complètement contrôlable, c'est à dire, dès que j'appuie sur la flèche du bas, il doit se déplacer vers le bas en étant animer, puis dès que je relache la touche, il ne doit plus bouger et revenir à la position frame = 1. Voila mon code modifié: Code :
Je n'arrive vraiment pas à régler ce problème avec mon niveau de débutant en programmation Merci d'avance pour l'aide. |
||||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() |
Je vois une erreur après un case il faut mettre un break que tu ne fait pas.
|
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 201 ![]() |
Hé bien oui, c'est normal que ton animation ne se fasse plus après modification
J'explique: suite à ta modification, pour que ton personnage se déplace, tu es obligé de tenir la touche DOWN enfoncée. Si tu tiens cette touche enfoncée, tu passes par le case SDL_KEYDOWN, puis par le case SDLK_DOWN à chaque boucle "while(continuer)" Donc, timex est remis à SDL_GetTicks() à chaque boucle. Donc, timey-timex>200 est toujours faux. Donc, pas d'appel à deplacer_joueur(...). Donc pas d'animation. CQFD Pour vérifier ça, mets simplement la ligne 68 de ton code en commentaire... Edgar. PS: à prendre avec humour. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com