最基本的方法是设置一个存储容器,其中包含一些您将重复使用的纹理;例如矢量或字典/地图。使用地图的方法,例如,你可以这样做:
// remember to #include <map>
map<string, SDL_Texture> myTextures;
// assign using array-like notation:
myTextures["texture1"] = IMG_LoadTexture(G_Renderer,"assets/tile_1.png");
myTextures["texture2"] = IMG_LoadTexture(G_Renderer,"assets/tile_2.png");
myTextures["texture3"] = IMG_LoadTexture(G_Renderer,"assets/tile_3.png");
myTextures["texture4"] = IMG_LoadTexture(G_Renderer,"assets/tile_4.png");
然后利用不同的纹理,你所要做的就是使用的东西线沿线的:
SDL_RenderCopy(G_Renderer, myTextures["texture1"], NULL, &destination);
SDL_RenderPresent(G_Renderer);
这可以进一步通过改变第一线控制为
SDL_RenderCopy(G_Renderer, myTextures[textureName], NULL, &destination);
其中textureName
是一个字符串变量,其可以在代码改变实时。
这种方法意味着您可以加载如以后需要你将需要前手和简单地利用他们的所有纹理,这意味着没有从文件系统加载,同时渲染:)
有地图here.的一个很好的解释
希望这会给你一个正确的方向推动。让我知道如果你需要更多的信息:)