tempsActuel = SDL_GetTicks(); if(tempsActuel - tempsPrecedent > 30)/* Si 30 ms se sont écoulées */ { if(sensX)
positionZozor.x++; else
positionZozor.x--;
tempsPrecedent = tempsActuel; /* Le temps "actuel" devient le temps "precedent" pour nos futurs calculs */ } else/* Si ça fait moins de 30ms depuis le dernier tour de boucle, on endort le programme le temps qu'il faut */ {
SDL_Delay(30 - (tempsActuel - tempsPrecedent)); }
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); /* On efface l'écran */
SDL_BlitSurface(zozor, NULL, ecran, &positionZozor); /* On place zozor à sa nouvelle position */
SDL_Flip(ecran); /* On met à jour l'affichage */ }
Ceci est le code que j'utilise pour réaliser un exercice des cours de C++ (Partie III/Chapitre 6, je crois!), mais je ne comprends pas pourquoi Zozor ne se déplace plus normalement quand je rappuyes sur P.
On dirait que marche retourne à 1 alors qu'il ne va pas dans la boucle.
Merci de pouvoir m'aider.