tian_123456789
田小思
2016-05-05 03:53

求救,DEV下为什么SDL中可以正常运行但是加载不出图片(图片和源代码在同一文件夹下)

#include"SDL/SDL.h"
#include

const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;

SDL_Surface *message = NULL;
SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;

SDL_Surface *load_image(std::string filename)
{
SDL_Surface *loadedImage = NULL;
SDL_Surface *optimizedImage = NULL;

loadedImage = SDL_LoadBMP(filename.c_str());
if(loadedImage!= NULL)
{
    optimizedImage=SDL_DisplayFormat(loadedImage);

    SDL_FreeSurface(loadedImage);
}
return optimizedImage;

}

void apply_surface(int x, int y, SDL_Surface *source, SDL_Surface *destination)
{
SDL_Rect offset;

offset.x=x;
offset.y=y;

SDL_BlitSurface(source, NULL, destination, &offset);

}

int main(int argc, char *args[])
{
if(SDL_Init(SDL_INIT_EVERYTHING)== -1)
{
return 1;

}
screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP,SDL_SWSURFACE);

if(screen==NULL)
{
    return 1;
    }   
SDL_WM_SetCaption("hello world", NULL);
message=load_image("1.bmp") ;
background=load_image("hello.bmp");

apply_surface(0, 0, background, screen);
apply_surface(320, 0, background, screen);
apply_surface(0, 240, background, screen);
apply_surface(320, 240, background, screen);

apply_surface(180, 140, message, screen);

if(SDL_Flip(screen)== -1)
{
    return 1;
}
SDL_Delay(5000);

SDL_FreeSurface(message);
SDL_FreeSurface(background);
SDL_Quit();


return 0;

}

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答