我有一个
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
。