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的要先上传,然后保存链接地址)


都在我的相册中,打开网页另存图片即可。

如有疑问请留言!

posted @ 2013-11-06 09:31  Talbot3  阅读(195)  评论(0编辑  收藏  举报