【发布时间】:2018-12-18 05:57:53
【问题描述】:
我不确定渲染精灵时哪里出错了。在我在讲座中学到的内容中,要渲染 PNG,您必须首先有一个将文件加载到的表面,然后您必须有一个纹理并从表面创建纹理,然后释放空间然后它应该输出它?我在哪里错了?可以是文件路径吗?如果是这样,我已尝试将完整目录和所有内容放入其中?
这是我的代码:
case 2:
{
//game code..............
SDL_SetRenderDrawColor(renderer, 255, 210, 0, 0);
SDL_RenderClear(renderer);
SDL_Texture* sprite;
SDL_Texture* blockt;
SDL_Texture* points;
SDL_Surface* blockS;
SDL_Surface* windowS;
SDL_Surface* temp;
blockS = IMG_Load("Barriers.png");
blockt = SDL_CreateTextureFromSurface(renderer, blockS);
SDL_FreeSurface(blockS);
SDL_RenderPresent(renderer);
}
break;
尝试忽略临时和我刚刚尝试过的不同事物的东西,并在那里留下了一些代码。基本上只需要知道为什么它不起作用。我在顶部有 SDL_INIT_EVERYTHING 以及 IMG_Init(SDL_INIT_EVERYTHING) 并且我已经包含了 SDL_image.h 标头。
【问题讨论】:
-
所有这些(SDL_RenderPresent 除外)都应该在您开始游戏时发生一次。要渲染一个精灵,您只需要每个精灵一个
SDL_RenderCopy,并在帧末尾使用SDL_RenderPresent。
标签: c++ image rendering sdl sdl-2