我有以下代码,其中我试图首先渲染背景,然后在它们之上渲染一些项目。唯一出来的是背景。
Textures 是我创建的一个类的 vector ,它基本上只包含一个 SDL_Texture*
和一个 SDL_Rect*
。纹理不是 NULL
,SDL_Rect 定位在屏幕上,我不确定它们为什么不显示。
//Clear screen
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, background, NULL, NULL); //Render background
for (auto texture : textures) {
if (texture.getXPos() && texture.getYPos()) { //Position, if applicable
SDL_RenderCopy(renderer, texture.getTexture(), NULL, texture.getRect());
}
else {
SDL_RenderCopy(renderer, texture.getTexture(), NULL, NULL);
}
}
//Update screen
SDL_RenderPresent(renderer);
最佳答案
愚蠢的错误:当我使用 SDL_Surface
时,我会将 SDL_Rect
的 w 和 h 设置为 0,这显然不是它应该如何与 SDL_Texture
。
关于c++ - 纹理不渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27745502/