C-lang~SDL_Lesson2
#ifdef __cplusplus #include <cstdlib> #else #include <stdlib.h> #endif #include <SDL/SDL.h> #include <string> const int SCREEN_WIDTH=640; const int SCREEN_HEIGT=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** argv ) { if(SDL_Init(SDL_INIT_EVERYTHING)==-1) { return 1; } screen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGT,SCREEN_BPP,SDL_SWSURFACE); SDL_WM_SetCaption("hello world",NULL); message=load_image("hello.bmp"); background=load_image("background.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( 2000 ); //释放表面 SDL_FreeSurface( message ); SDL_FreeSurface( background ); //退出SDL SDL_Quit(); return 0; }
其中有两个图片:hello.bmp和background.bmp(找了一下大于10M的要先上传,然后保存链接地址)
都在我的相册中,打开网页另存图片即可。
如有疑问请留言!
不要让今天成为明天的遗憾!