1.SDL遊戲開發:環境搭建與測試

SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發庫,使用C語言寫成。SDL提供了數種控制圖像、聲音、輸出入的函數,讓開發者只要用相同或是類似的代碼就能夠開發出跨多個平臺(Linux、Windows、Mac OS X等)的應用軟件。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。如下基本內容來與http://lazyfoo.net/SDL_tutorials/index.php同步。 php

SDL遊戲開發系列教程,代碼基於Linux(fedora 12)測試。安裝SDL開發包,首先使用yum安裝, shell

# yum install SDL-devel SDL_mixer-devel SDL_image-devel SDL_ttf-devel
安裝完成後,而後測試是否可用,

用VIM編輯測試代碼,以下 ide

#include "SDL/SDL.h"

int main( int argc, char* args[] )
{
    //Start SDL
    SDL_Init( SDL_INIT_EVERYTHING );
    
    //Quit SDL
    SDL_Quit();
    
    return 0;    
}
保存名爲sdl00.cpp,在SDL編譯時必定要記得加 -lSDL, 否則會出現未定義函數
[bluesky@localhost sdl]$ g++ -o sdl00 sdl00.cpp
/tmp/ccBROfgC.o: In function `main':
sdl00.cpp:(.text+0x11): undefined reference to `SDL_Init'
sdl00.cpp:(.text+0x16): undefined reference to `SDL_Quit'
collect2: ld returned 1 exit status
[bluesky@localhost sdl]$
在命令行進行編譯:
g++ -o sdl00 sdl00.cpp -lSDL
./sdl00
沒有任何提示,說明SDL安裝成功,下面我將用一個具體的例子來講明,從最簡單的用起,顯示一張圖片:
//Include SDL functions and datatypes
#include "SDL/SDL.h"

int main( int argc, char* args[] )
{
    //The images
    SDL_Surface* hello = NULL;
    SDL_Surface* screen = NULL;

    //初始化 SDL
    SDL_Init( SDL_INIT_EVERYTHING );

    //設置圖像大小
    screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );

    //導入圖片,請記得在執行目錄下面加入圖片文件
    hello = SDL_LoadBMP( "hello.bmp" );

    //塊移表面
    SDL_BlitSurface( hello, NULL, screen, NULL );

    //顯示圖片
    SDL_Flip( screen );

    //暫停2000ms
    SDL_Delay( 2000 );

    //釋放導入的圖片
    SDL_FreeSurface( hello );

    //關閉 SDL
    SDL_Quit();

    return 0;
}
保存爲sdl01.cpp ,進行編譯
g++ -o sdl01 sdl01.cpp -lSDL
./sdl01
將會出現一個以下的對話框,有2S的顯示時間,可是,當使用Terminal從對話框拖事後,會出現以下黑色效果,關於出現以下顯示緣由將在後面文章解釋。

第一個簡的例子到此,算是完成了,其中關於SDL的函數API就很少說,API應用爲主,要的時候,去找就是了,能夠到http://www.libsdl.org/裏面找就是了。 函數

相關文章
相關標籤/搜索