c++ - 如何清除 SDL_Surface 以替换为另一个 SDL_Surface?

标签 c++ sdl surface

一段时间以来一直试图在网上找到它。

我有一个带有一些内容的 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/

相关文章:

c++ - 是什么限制了我在内存方面对堆栈的使用?

c++ - 在 make 文件中链接 SDL_image

c++ - 改变一个指针后乘法对象改变

c++ - OpenGL 法线未出现在三角形中

pygame - Colliderect() 意外触发

c++ - malloc 和 allocate 有什么区别

c++ - 删除无效指针是否保证删除正确的大小?

SDL 中具有显着延迟的视频更新

python - Plotly Plot surface 3D 不显示

c++ - Qt 中的正则表达式