Le texte de rendu SDL ne se manifeste que si une autre surface est éliminée
-
28-10-2019 - |
Question
j'ai un
timer = TTF_RenderText_Solid( tfont, timeStr.str().c_str(), txtColor );
applySurface(500, 30, timer, screen);
Et à la surface de «l'écran», j'ai également appliqué mon personnage et mon mur. Mais pour une raison quelconque, je n'arrive pas à voir la minuterie à moins d'avoir déjà nul le «Floorsurface» et la «Charsurface». Est-ce que je fais quelque chose de mal?
La solution
Essayez de mettre TimerUpdate () avant SDL_FLIP (écran). Vous appelez SDL_FLIP, puis vous appelez TIMERUPDATE (). Alors tu penses, ok, c'est bien, la prochaine fois que l'écran sera retourné, je verrai le texte. Mais ce qui se passe, c'est que vous blignez plus de surfaces sur le dessus avant que l'écran ne soit retourné, puis vous ne pouvez pas voir le texte parce que vous avez échoué sur les surfaces sur le dessus. Tout ce que vous avez à faire est de modifier la commande, donc
timerUpdate();
if (SDL_Flip(screen) == -1) return 1; //Instead of the other way round
devrait marcher.