Discussion: [NDS] Sprite
Afficher un message
Vieux 04/12/2006, 19h13   #14
Arcadia
Modérateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compiègne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Citation:
Envoyé par Beda
Bon pour garder le mouvement j'ai fais de facon barbare mais ca marche !
Il est clair que c'est une façon de faire un peu barbare !

Dans mon cas, pour régler une vitesse, du moins introduire une notion de temporisation, je ne procède pas ainsi. Ma méthode n'est surement pas la mailleur, mais elle marche et elle est un peu plus propre ...

A chaques tour de VBL, j'appele une fonction de déplacement, disons marche();
Ensuite, cette fonction se compose ainsi :

Code:
void marche()
{
   counter ++;

   if (counter > 5)

   {
      counter = 0;
      x+=deplacementX;  (ce déplacement peut être positif ou négatif, il est fonction des touches appuyées)
      y+=déplacementY;  (ce déplacement peut être positif ou négatif, il est fonction des touches appuyées)
      PA_SetSpriteXY(sprite,x,y);  (je suis pas sur de l'emploi de cette fonction, j'ai fais comme pour HAM...)		
   }

}

On peut donc en déduire que le sprite se déplacera tous les 6 tours de VBL (de 0 à 5), soit environ 1/10 ème de seconde, puisque que le le rappele, un tour de VBL équivaut à 1/60 ème de seconde. Tant que le counter, n'a pas atteint 6, on ne déplacera pas le sprite. On peut même imaginer une vitesse de sprite variable en changeant ce paramètre de condition...
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)

Dernière modification par Arcadia ; 04/12/2006 à 19h24.
Arcadia est déconnecté   Réponse avec citation