Problème affichage image SDL

erasmus425 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -  
erasmus425 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un petit soucis (sûrement d'architecture de mon code) : je souhaiterais afficher une image environ 2sec sans pour autant bloquer le reste du programme (donc le SDL_Delay on oublie).

Là où j'en suis : :
j'ai utilisé le SDL_GetTicks () accompagné d'une petite soustraction afin de vérifier à chaque passage dans ma boucle (qui englobe tout le programme) : si 2 secondes se sont écoulées, ça affiche l'image, sinon ça passe le if.

Le problème : A la fin de ma boucle "j'efface l'écran" (je le re-blit pour effacer tout ce que je ne veux pas), or cela efface aussi l'image que je veux laisser. Cependant, vu que la condition est vérifiée pendant deux secondes, l'image se ré-affiche (donc ce que je voulais à la base, je l'ai :D )
Là où ça cloche c'est que l'image scintille (vu que je l'affiche, je l'efface, je l'affiche, je l'efface et ainsi de suite)

Quelqu'un aurait-il une solution pour éviter ce scintillement ?
A voir également:

2 réponses

erasmus425 Messages postés 68 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci de la réponse
Voici le bout de code qui pose problème :

while(!in.key[SDLK_ESCAPE])    tant qu'echap relaché
{
[...] deplacements

tempsActuel = SDL_GetTicks ();
if(in.key[SDLK_SPACE]) appuie sur espace
tempsInitial = tempsActuel;

if (tempsActuel - tempsInitial < TEMPS_TIR)
SDL_BlitSurface (tir, NULL, ecran, &posTir);



SDL_FillRect (ecran, NULL, SDL_MapRGB(ecran->format, 20, 50, 120));
SDL_BlitSurface (carre, NULL, ecran, &posCarre);
SDL_BlitSurface (Joueur, NULL, ecran, &posJoueur);
SDL_Flip(ecran);
}
1
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
Bonsoir j'ai l'habitude de voir un code source (car c'est lui qui sais causer) sans bout de code ont ne pas t'aider
0