除非清除其他曲面,否则SDL渲染文本不会显示

时间:2011-05-04 10:43:36

标签: sdl true-type-fonts surface blit

我有一个

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

并且在'屏幕'表面上我也应用了我的角色和墙壁。但由于某种原因,我似乎无法看到计时器,除非我已经将'floorurface'和'charsurface'都设为NULL。我做错了吗?

1 个答案:

答案 0 :(得分:1)

尝试在SDL_Flip(屏幕)之前放置timerUpdate()。您正在调用SDL_Flip,然后调用timerUpdate()。所以你认为,好的,下次屏幕翻转时,我会看到文字。但正在发生的事情是,在再次翻转屏幕之前,你会在顶部更多的表面,然后你看不到文本,因为你在它上面有表面。您需要做的就是更改订单,所以

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

应该有用。