一段时间以来一直试图在网上找到它。
我有一个带有一些内容的 SDL_Surface(其中一个是文本,另一个是 Sprite 的一部分)。在游戏循环中,我可以很好地将数据显示在屏幕上。但是然后它再次循环并且它不会替换旧数据而只是覆盖它。所以在文本的情况下,它变得一团糟。
我试过 SDL_FreeSurface 但没有用,有人知道其他方法吗?
fpsStream.str("");
fpsStream << fps.get_ticks();
fpsString = fpsStream.str();
game.fpsSurface = TTF_RenderText_Solid(game.fpsFont, fpsString.c_str(), textColor);
game.BlitSurface(0, 0, game.fpsSurface, game.screen);
最佳答案
试试这样的:
SDL_FillRect(屏幕, NULL, 0x000000);
在循环的开始。
关于c++ - 如何清除 SDL_Surface 以替换为另一个 SDL_Surface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604268/