police = TTF_OpenFont("ARIAL.TTF", 65); /* Ouverture de la police au début */ /* Ecriture du texte dans la SDL_Surface "texte" en mode Blended (optimal) */
texte = TTF_RenderText_Blended(police, "Salut les Zér0s !", couleurNoire);
/* Chargement d'une image Bitmap dans une surface */
imageDeFond = SDL_LoadBMP("background.bmp"); /* On blitte par-dessus l'écran */
SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
position.x = 60;
position.y = 370;
SDL_BlitSurface(texte, NULL, ecran, &position); /* Blit du texte par-dessus */
SDL_Flip(ecran); // Quand je le supprime l'image apparait mais il manque toujours le texte
while(continuer) {
SDL_PollEvent(&event); /* On utilise PollEvent et non WaitEvent pour ne pas bloquer le programme */ switch(event.type) { case SDL_QUIT:
continuer = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: /* Appui sur la touche Echap, on arrête le programme */
continuer = 0; break; } break; }
tempsPrecedent = tempsActuel; } 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)); }
TTF_CloseFont(police); /* Fermeture de la police avant TTF_Quit */
TTF_Quit(); /* Arrêt de SDL_ttf (peut être avant ou après SDL_Quit, peu importe) */
SDL_FreeSurface(texte);
SDL_Quit();
Un seul SDL_Flip() suffit, met le tout à la fin de la boucle principal.
et SDL_BlitSurface() se met aussi dans la boucle principal, après le SDL_FillRect et avant le SDL_Flip().
ça devrait mieux marcher maintenant (du moins faire moins d'erreurs).
Rappel: Comme M@teo l'a dit dans son cours, la boucle principal se termine toujours comme ça:
FillRect()
BlitSurface()
Flip()
Re : Probleme d'affichage texte
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.