1. 程式人生 > >SDL 2 遊戲程式設計(零)配置環境

SDL 2 遊戲程式設計(零)配置環境

原文連結Lazy Foo’ Productions (2004-2015)
因為我用的code block,所以這裡只放下code block的環境配置方法供參考~

  1. 從官網下載 SDL 2,code block預設使用的是 MinGW編譯器,所以最好下載圖片中箭頭指著那個版本。
    這裡寫圖片描述
    下載完成後解壓檔案,裡面會包含i686-w64-mingw32 資料夾和x86_64-w64-mingw32 資料夾,前面那個是32位的,後面的是64位的,即便用的是64位的系統,很多編譯器依然是32位的編譯器,所以推薦使用32位的資料夾。
  2. 在code block中建立一個新的空專案。設定好位置,一路next~
    這裡寫圖片描述
  3. 移步Project->Properties,在開啟的配置視窗中點選Project’s build options
    這裡寫圖片描述
  4. 彈出的視窗中選擇Search directories選項卡,子選項卡選擇Compiler。這一步需要告訴編譯器SDL2標頭檔案的位置,新增地址如圖所示(以第一步中解壓後文件的地址為準,下同)。
    這裡寫圖片描述
    如果編譯時出現can’t find SDL.h一類的編譯錯誤,說明這一步你搞砸了。
  5. 這一步我們要告訴編譯器庫檔案的位置啦~,子選項卡選擇Linker然後新增庫檔案的地址,如圖所示。
    這裡寫圖片描述
    如果編譯時出現了can’t find lSDL2, lSDL2main一類的錯誤,則是這一步搞砸了。
  6. 選擇Linker setting選項卡,並複製貼上下面這行連結指令。
    -lmingw32 -lSDL2main -lSDL2
    這裡寫圖片描述
  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 <SDL.h> #include <stdio.h> //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; }

編譯執行,出現一個白色的視窗就成功啦~