O texto de renderização SDL não aparece a menos que outra superfície seja limpa
-
28-10-2019 - |
Pergunta
Eu tenho um
timer = TTF_RenderText_Solid( tfont, timeStr.str().c_str(), txtColor );
applySurface(500, 30, timer, screen);
e na superfície da 'tela' também apliquei meu personagem e minha parede.Mas, por algum motivo, não consigo ver o cronômetro, a menos que já tenha NULL a 'superfície do piso' e a 'superfície de caractere'.Estou fazendo algo errado?
Solução
Tente colocar timerUpdate () antes de SDL_Flip (tela).Você está chamando SDL_Flip e, em seguida, chama timerUpdate ().Então você pensa, OK, tudo bem, da próxima vez que a tela for virada, verei o texto.Mas o que está acontecendo é que você está borrando mais superfícies no topo antes que a tela seja virada novamente, e então você não pode ver o texto porque você borrou as superfícies em cima dele.Tudo o que você precisa fazer é mudar a ordem, então
timerUpdate();
if (SDL_Flip(screen) == -1) return 1; //Instead of the other way round
deve funcionar.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow