尝试将一个图像显示在另一个SDL2上没有错误,但第二个图像无法显示

时间:2019-01-14 03:30:13

标签: c++ sdl sdl-2

我正在使用超级简单的多项选择游戏进行测试,但是我无法将图像放在背景之上。文件名正确,并且我的背景首先显示。

我的代码没有给我任何错误,程序正在运行,仅显示背景。我不知道问题是什么。

void Display(SDL_Surface*& windowsurface, SDL_Surface*& background, SDL_Surface*& image, SDL_Window*& window, SDL_Rect& scaleRect, int &slide){
    if(slide == 2){
        image == SDL_LoadBMP("image-3.bmp");
    }
    else if(slide == 3){
        image == SDL_LoadBMP("image-2.bmp");
    }
    else if(slide == 4){
        image == SDL_LoadBMP("image-3.bmp");
    }
    if(slide < 5){
        background = SDL_LoadBMP("background-1.bmp");
    }
    else if(slide == 5 || slide == 8 || slide == 11){
        background = SDL_LoadBMP("background-2.bmp");
    }
    else if(slide == 6 || slide == 9 || slide == 12){
        background = SDL_LoadBMP("background-3.bmp");
    }
    else if(slide == 7 || slide == 10 || slide == 13){
        background = SDL_LoadBMP("background-4.bmp");
    }
SDL_BlitSurface(background, NULL, windowsurface, NULL);
SDL_BlitScaled(image, NULL, windowsurface, &scaleRect);
SDL_UpdateWindowSurface(window);

}

1 个答案:

答案 0 :(得分:0)

在将图像加载到图像1时,我使用==作为运算符,但实际上并没有将其设置为图像1。 我应该做的:

image = loadBMP("image-1.bmp");

代替

image == loadBMP("image-1.bmp);