Il testo di rendering SDL non viene visualizzato a meno che non venga cancellata un'altra superficie

StackOverflow https://stackoverflow.com/questions/5882163

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top