Il testo di rendering SDL non viene visualizzato a meno che non venga cancellata un'altra superficie
-
28-10-2019 - |
Domanda
Ho un
timer = TTF_RenderText_Solid( tfont, timeStr.str().c_str(), txtColor );
applySurface(500, 30, timer, screen);
e sulla superficie dello "schermo" ho anche applicato il mio personaggio e il mio muro.Ma per qualche motivo non riesco a vedere il timer a meno che non abbia già NULL la "superficie del pavimento" e la "superficie del carattere".Sto facendo qualcosa di sbagliato?
Soluzione
Prova a inserire timerUpdate () prima di SDL_Flip (schermo).Stai chiamando SDL_Flip, quindi chiami timerUpdate ().Quindi pensi, OK, va bene, la prossima volta che lo schermo viene capovolto, vedrò il testo.Ma quello che sta succedendo è che stai blittando più superfici in alto prima che lo schermo venga di nuovo capovolto, e quindi non puoi vedere il testo perché hai blato delle superfici sopra di esso.Tutto quello che devi fare è modificare l'ordine, quindi
timerUpdate();
if (SDL_Flip(screen) == -1) return 1; //Instead of the other way round
dovrebbe funzionare.