如何在 SDL_image 和 SDL2 中加载多个图像?

How to load multiple images in SDL_image and SDL2?

我一直在尝试在 SDL window 中加载 2 张图片,就像玩家和敌人一样,但是 SDL2_image 一次只加载一张图片 这是我的代码:

#include<iostream>
#define SDL_MAIN_HANDLED
#include<SDL2/SDL.h>
#include<SDL2/SDL_image.h>
using namespace std;

SDL_Texture* load(SDL_Renderer* ren, const char* path, SDL_Rect rect)
{
    SDL_Texture* img = IMG_LoadTexture(ren, path);
    if (img == NULL)
        cout << SDL_GetError() << endl;
    SDL_RenderClear(ren);
    SDL_RenderCopy(ren, img, NULL, &rect);
    SDL_RenderPresent(ren);
    return img;
}

int main()
{
    SDL_Init(SDL_INIT_EVERYTHING);
    IMG_Init(IMG_INIT_PNG);

    SDL_Window* window = SDL_CreateWindow("SDL2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 460, 380, SDL_WINDOW_RESIZABLE);

    SDL_Surface* icon = IMG_Load("sdl.png");
    SDL_SetWindowIcon(window, icon);

    SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

    SDL_Rect rect,r2;
    rect.x = 0; r2.x = 65;
    rect.y = 0; r2.y = 80;
    rect.w = 64; r2.w = 64;
    rect.h = 64; r2.h = 64;

    SDL_Texture* img = load(ren, "player.png", rect);
    SDL_Delay(2000);
    SDL_Texture* tex = load(ren, "enemy.png", r2);
    SDL_Event events; bool running = true;
    while (running == true)
    {
        if (SDL_PollEvent(&events))
        {
            if (events.type == SDL_QUIT)
            {
                running = false;
                break;
            }
        }
    }

    IMG_Quit();
    SDL_Quit();
    return 0;
}

我用 SDL_Delay 来演示会发生什么 它首先加载“player.png”,然后在 2 秒后加载“enemy.png” 我想同时加载两者,但我不能

请帮忙!

已解决,原因是SDL_RenderClear