SDL 2 游戏编程(零)配置环境

原文链接Lazy Foo’ Productions (2004-2015)
因为我用的code block,所以这里只放下code block的环境配置方法供参考~

  1. 从官网下载 SDL 2,code block默认使用的是 MinGW编译器,所以最好下载图片中箭头指着那个版本。
    SDL 2 游戏编程(零)配置环境_第1张图片
    下载完成后解压文件,里面会包含i686-w64-mingw32 文件夹和x86_64-w64-mingw32 文件夹,前面那个是32位的,后面的是64位的,即便用的是64位的系统,很多编译器依然是32位的编译器,所以推荐使用32位的文件夹。
  2. 在code block中创建一个新的空项目。设置好位置,一路next~
    SDL 2 游戏编程(零)配置环境_第2张图片
  3. 移步Project->Properties,在打开的配置窗口中点击Project’s build options
    SDL 2 游戏编程(零)配置环境_第3张图片
  4. 弹出的窗口中选择Search directories选项卡,子选项卡选择Compiler。这一步需要告诉编译器SDL2头文件的位置,添加地址如图所示(以第一步中解压后文件的地址为准,下同)。
    SDL 2 游戏编程(零)配置环境_第4张图片
    如果编译时出现can’t find SDL.h一类的编译错误,说明这一步你搞砸了。
  5. 这一步我们要告诉编译器库文件的位置啦~,子选项卡选择Linker然后添加库文件的地址,如图所示。
    SDL 2 游戏编程(零)配置环境_第5张图片
    如果编译时出现了can’t find lSDL2, lSDL2main一类的错误,则是这一步搞砸了。
  6. 选择Linker setting选项卡,并复制粘贴下面这行链接指令。
    -lmingw32 -lSDL2main -lSDL2
    SDL 2 游戏编程(零)配置环境_第6张图片
  7. 第一步中解压出来的文件中有个动态链接库文件SDL2.dll,把这个文件拷贝到C:\Windows\SysWOW64 (64位系统)或者C:\WINDOWS\SYSTEM32 (32位系统)文件夹中。
  8. 建立一个新的cpp文件,添加如下代码到这个文件中。
/*This source code copyrighted by Lazy Foo' Productions (2004-2015)
and may not be redistributed without written permission.*/

//Using SDL and standard IO
#include 
#include 

//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main( int argc, char* args[] )
{
    //The window we'll be rendering to
    SDL_Window* window = NULL;

    //The surface contained by the window
    SDL_Surface* screenSurface = NULL;

    //Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
    }
    else
    {
        //Create window
        window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
        if( window == NULL )
        {
            printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
        }
        else
        {
            //Get window surface
            screenSurface = SDL_GetWindowSurface( window );

            //Fill the surface white
            SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );

            //Update the surface
            SDL_UpdateWindowSurface( window );

            //Wait two seconds
            SDL_Delay( 2000 );
        }
    }

    //Destroy window
    SDL_DestroyWindow( window );

    //Quit SDL subsystems
    SDL_Quit();

    return 0;
}

编译运行,出现一个白色的窗口就成功啦~

你可能感兴趣的:(sdl2)