SDL渲染文本不显示,除非其他表面清除



我有一个

timer = TTF_RenderText_Solid( tfont, timeStr.str().c_str(), txtColor ); 
applySurface(500, 30, timer, screen);

,在"屏幕"表面,我也应用了我的角色和我的墙。但出于某种原因,我似乎看不到计时器,除非我已经NULL 'floorsurface'和'charsurface'。我做错了什么吗?

尝试将timerUpdate()放在SDL_Flip(screen)之前。先调用SDL_Flip,然后调用timerUpdate()。你会想,好吧,那很好,下次屏幕翻转时,我就能看到文本了。但现在的情况是,在屏幕再次翻转之前,你在屏幕上方篡改了更多的表面,然后你就看不到文字了,因为你篡改了上面的表面。您所需要做的就是改变顺序,因此

timerUpdate();
if (SDL_Flip(screen) == -1) return 1; //Instead of the other way round

最新更新