On m'a souevnt aidé sur ce forum, alors j'espère pouvoir le faire à mon tour. Rien d'extraordinaire, mais juste pour vous faire par de ma technique d'animation des sprites (si si je vous jure j'ai trouvé tout seul).
En fait tout d'abord je définis mes constantes auxquelles je donne un nom approprié (#persogauche,#persodroite,#persobouge,#persosaute etc...)
Ensuite je définis une variable globale que j'appelle frame.
Ce qui fait que dans la boucle principale, je n'ai qu'un seul "displaysprite" qui prend pour paramètre la variable frame.
Du coup ma procedure mouvement donne ceci :
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Left)
If pause = 0 : frame = #persogauche: EndIf
If pause = 30 : frame = #persomarche : EndIf
pause + 1
perso\x - 2
If pause = 60
pause = 0
EndIf
Je fais de même pour la touche #PB_Key_Right et le tour est joué.
Il n'y a qu'à changer la valeur de pause pour accélérer ou freiner l'anim (voire aussi désynchroniser la vitesse selon le passage d'une frame à l'autre).
Dans cet exemple il n'y a que 2 frames mais c'était pour faire court.
Je trouve cette technique plus simple que le clipage (merci quand même à marcus de bgames)
Autre avantage, si je veux faire un zoom ou une rotation sur un sprite 3d je n'ai qu'à placer qu'une ligne avant mon displaysprite3d() et pas un pour chacun des sous cadres de l'anim.
Voilà, je suis sûr que vous connaissiez déjà ce truc, mais je suis content de l'avoir trouvé tout seul.
