1. 程式人生 > >SDL庫的安裝及遊戲測試

SDL庫的安裝及遊戲測試

SDL的介紹

   SDLSimple DirectMedia Layer(簡易直控媒體層)的縮寫。它是一個跨平臺的多媒體庫,以用於直接控制底層的多媒體硬體的介面。這些多媒體功能包括了音訊、鍵盤和滑鼠(事件)、遊戲搖桿等。當然,最為重要的是提供了 2D圖形幀緩衝(framebuffer)的介面,以及為 OpenGL與各種作業系統之間提供了統一的標準介面以實現 3D圖形。從這些屬性我們可以看出,SDL基本上可以認為是為以電腦遊戲為核心開發的多媒體庫。

         SDL 支援主流的作業系統,包括 Windows Linux。在官方的介紹中,我們可以找到它所支援的其他平臺。(SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X,

FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.)。SDL 本身從 C語言開發,並且能很好的在C++等高階語言中使用。在官方可以看到SDL所支援的語言很多。(IncludingAda, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl,

PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl.

         SDLGNU LGPL version 2

下發布,這意味著你可以免費的使用。並且可以免費的用於商業軟體的製作(只要你直接使用 SDL的動態連結庫,Windows 下的 SDL.dll)。如果你 SDL庫編譯進了自己的二進位制程式碼中,你需要指明你所使用的 SDL 庫的版本以及包括你自己修改的原始碼,並說明這些程式碼的原始出處。這是很寬鬆的法律,你可以用如此強大的多媒體庫完全合法的免費開發商業遊戲。

SDL的組成

SDL本身是封裝各種作業系統,圖形,輸入,輸出等底層輸出。在某一些分支,還有一些額外的庫支援來擴充套件SDL的功能。常見的擴充套件有

lSDL_image ,SDL預設只支援BMP格式圖象,如果需要其它圖形JPEG/GIF/PNG/TIFF

等就需要這個擴充套件庫

lSDL_ttf。使用MSTrue Type Font來顯示各種字型,包括中文或其它非字母文字。

lSDL_net. 封裝網路處理。

lSDL-mixter封裝對各種音效,播放音樂檔案的處理。

lSDL_gfx SDL圖形顯示及特效擴充套件。

SDL其它擴充套件:

圖形介面

Agar - Advanced GUI toolkit with OpenGL support. Object-oriented, extensible and easily integrable, it is implemented in C but is usable from C++ and other languages
http://libagar.org

. SDL庫的安裝 SDL庫在LINUX是安裝非常簡單的,是典型的configure/make/make install的專案.有一專案需要提前安裝依賴庫.
  • SDL庫
  • SDL_image庫,需要先安裝libjpeg/libpng
  • SDL-mixter庫,需要先安裝libmad 庫,(libid3tag不是必須)但是建議安裝.
  • SDL_ttf庫.
  • SDL_net
  • SDL_gfx 庫安裝

SDL庫的安裝

  • 解壓 tar xvzf SDL-1.2.14.tar.gz
  • 生成Makefile cd SDL-1.2.14    & ./configure
  • 編譯安裝然後 make & make install

建議下載 sdl聯機文件.

SDL_image庫的安裝

  • 預先安libpng,否則png 格式不支援,RHEL自帶了相關庫執行
    • rpm -ivh libpng-1.2.10-7.i386.rpm
    • rpm -ivh libpng-devel-1.2.10-7.i386.rpm
  • 預先安裝libjpeg,否則jpeg,gif,tiff 很多格式不支援.RHEL自帶了相關庫執行.
    • rpm -ivh libjpeg-6b-37.i386.rpm
    • rpm -ivh libjpeg-devel-6b-37.i386.rpm
  • 解壓 tar xvzf SDL_image-1.2.8.tar.gz
    • cd SDL_image-1.2.8
  • 生成makefile ./configure
  • 編譯,安裝 make & make install

    SDL_ttf庫的安裝

SDL-mixer庫安裝

SDL-net庫安裝

SDL-gfx庫安裝

SDL遊戲測試

我選擇幾個成功執行的遊戲測試

超級馬里奧                                       

  •   解壓 unzip smw-1.8-beta2-src.zip
    • cd cd smw-1.8-beta2-src
    • configure 指令碼有BUG是WINDOWS文字檔案, dos2unix configure            
  • 編譯 make
  • 執行 _src/smw. 其中需要地圖之類 
    • tar xvzf smw-1.8-beta2-linux.tar.gz -C /
  • 運行遊戲                                                              
    • export LD_LIBRARY_PATH=/usr/local/lib ; ./smw                        

alsym

仙劍奇俠傳

   70後年代,單機版的經典DOS遊戲.我能向學生解釋的只有電視劇<<仙劍奇俠傳>>已經拍到3了. sdlpal是一個重寫的程式,即作者在已經分析出原有遊戲的資原始檔格式(如圖片,音樂,遊戲進度,場景等)用SDL重寫的一個遊戲.因此完整的遊戲還需要dos版遊戲資原始檔
  官方網站 http://sdlpal.codeplex.com/.
我下載是 sdlpal-37652.zip.
http://sdlpal.codeplex.com/Project/Download/SourceControlFileDownload.ashx?ProjectName=sdlpal&changeSetId=37652
 
  遊戲資源的可以下載26M的精減版.注意裡面一般都是大寫檔名,但是sdlpal使用的都是小寫檔案,可以寫一個指令碼一次改

sdlpal的編譯

  • 解壓 unzip sdlpal-37652.zip
  • cd sdlpal
  • 編譯 sdlpal 
  • 安裝.X86版的可執行檔案在  專案目錄的 dist/Debug/GNU-Linux-x86 下面,將其拷貝到DOS版的目錄下.
  •   執行 export LD_LIBRARY_PATH=/usr/local/lib ; ./sdlpal


完全檔案列表  

0.rpg     f.mkf        mpu401.drv  roriso.nfo  wor16.asc
1.rpg     gop.mkf      mus.mkf      voc.mkf     wor16.fon
abc.mkf   install.exe  pal.exe     sdlpal      word.dat
ball.mkf  map.mkf      pat.mkf     sdlpal.map
data.mkf  mgo.mkf      play.bat    setup.dat
fbp.mkf   midi.mkf     rgm.mkf     sss.mkf
fire.mkf  m.msg        rng.mkf     voc.mkf