最基本的方法是設置一個存儲容器,其中包含一些您將重複使用的紋理;例如矢量或字典/地圖。使用地圖的方法,例如,你可以這樣做:
// 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.的一個很好的解釋
希望這會給你一個正確的方向推動。讓我知道如果你需要更多的信息:)