(je n'avais pas percuté) : il ne faut pas que tu utilises SDL_Delay() dans la boucle de message c'est une extrêmement mauvaise chose ; tout simplement parce que c'est une instruction qui risque d'être asynchrone.
Dans la logique des choses si tu veux afficher des bitmaps ou faire une action ( par exemple déterminer un path-finding ) puis après tu demandes une suspension d'exécution avec SDL_Delay(), bon eh bien si l'affichage des bitmaps prend un certain temps et qu'il n'est pas totalement fini le programme rencontre SDL_Delay() ce qui risque de désynchroniser le bon fonctionnement des choses.
SDL_Delay() c'est une mauvaise habitude de programmation un peu comme SleepEx en win32...
La solution c'est que tu calcules un delta de millisecondes et tu testes si ce delta de ms est inférieur à une certaine valeur pour mettre à jour les sprites.
Regarde sur mon profil j'avais posté un petit code source de bomberman sinon regardes les tutos du site il doit y avoir cela..
C'est une mauvaise chose ; si tu mets pas de synchro temporelle, ton jeu va tourner normalement sur une machine ancienne et trop rapidement sur une machine plus rapide
Mais pourquoi s'entêter à utiliser SDL_Delay()? SDL_Delay on l'utilise par exemple pour temporiser l'interaction avec un menu un chargement de ressources mais PAS dans le rendu d'affichage
Partager