El texto renderizado de SDL no se muestra a menos que se despeje otra superficie
-
28-10-2019 - |
Pregunta
Tengo un
timer = TTF_RenderText_Solid( tfont, timeStr.str().c_str(), txtColor );
applySurface(500, 30, timer, screen);
y en la superficie de la 'pantalla' también he aplicado mi personaje y mi pared.Pero por alguna razón, parece que no puedo ver el temporizador a menos que ya tenga NULL la 'superficie del piso' y la 'superficie de caracteres'.¿Estoy haciendo algo mal?
Solución
Intente poner timerUpdate () antes de SDL_Flip (pantalla).Estás llamando a SDL_Flip, luego llamas a timerUpdate ().Entonces piensas, está bien, la próxima vez que se voltee la pantalla, veré el texto.Pero lo que está sucediendo es que está blitting más superficies en la parte superior antes de que la pantalla se voltee de nuevo, y luego no puede ver el texto porque blitting superficies en la parte superior.Todo lo que necesita hacer es cambiar el orden, así que
timerUpdate();
if (SDL_Flip(screen) == -1) return 1; //Instead of the other way round
debería funcionar.