使用SDL打造游戏世界之入门篇 - 1
生活随笔
收集整理的這篇文章主要介紹了
使用SDL打造游戏世界之入门篇 - 1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
來源:天極開發?作者:維維編譯?出處:巧巧讀書?2007-07-17?進入討論組
?
簡介
Simple DirectMedia Layer, 簡稱SDL,是一個自由的跨平臺的多媒體開 發包,主要通過OpenGL和2D視頻幀緩沖(framebuffer)提供對音頻、鍵盤、鼠標、游戲操縱桿(joystick)和3D硬件的底層訪問。 它被廣泛的應用于MPEG回放軟件、模擬器和多個著名游戲中,如獲得大獎的《文明:權傾天下》(Civilization: Call To Power)的Linux移植版本。它的官方站點是:http://www.libsdl.org/ ,還有一個非常個性的LOGO(圖1)。
?在Win32編程中,如果要操縱2D圖像,可以選擇使用GDI或者DirectDraw,前者速度較慢,而后者是特定針對Microsoft平 臺的,在非Win32平臺上移植會帶來很大的麻煩。這時,你可以選擇使用SDL。SDL支持多種平臺:Linux、Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX和QNX,同時也部分支持部分其他平臺:Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS和SymbianOS。當然SDL本身是針對2D圖像編程的,如果使用到3D編程,那么需要將SDL和OpenGL結合使用。
SDL是用C編寫的,但是也支持C++,同時其他多種語言,下面給出了其他語言的SDL的開發包的相關信息:
·Ada
AdaSDL - http://sourceforge.net/projects/adasdl/
·C#
SDL.Net - http://cs-sdl.sourceforge.net/
·Eiffel
ewg - http://ewg.sourceforge.net/
·Erlang
ESDL - http://www.ericsson.com/cslab/~dgud/esdl/
·Euphoria
SDL_Wrap - http://www.rapideuphoria.com/sdl_wrap.zip
·Guile
guile-sdl - http://sourceforge.net/projects/guile-sdl/
·Java
JSDL - http://jsdl.sourceforge.net/
sdljava - http://sdljava.sourceforge.net
·Lisp
CL-SDL - http://cl-sdl.sourceforge.net/
SDL for Corman Common Lisp - http://www.balooga.com/lisp_sdl.php3
·Lua
luaSDL - http://lua-users.org/wiki/LuaModuleLuaSdl
·ML
SDLML - http://www.HardcoreProcessing.com/Freeware/SDLML.html
OCamlSDL - http://ocamlsdl.sourceforge.net/
·Objective C
SDLOBJC - http://savannah.nongnu.org/projects/sdlobjc/
·Pascal
SDL4Freepascal - http://sdl4fp.sourceforge.net/
JEDI-SDL - http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME
·Perl
SDLPerl - http://sdl.perl.org
·PHP
PHP SDL module - http://phpsdl.sourceforge.net
·Pike
Natively supported (module SDL) - http://pike.ida.liu.se/
·Pliant
Pligame - http://pligame.sourceforge.net/
·Python
PyGame - http://pygame.seul.org/
·Ruby
Ruby/SDL - http://www.kmc.kyoto-u.ac.jp/~ohai/index.en.html
RUDL - http://rudl.sourceforge.net
功能
視頻
·設置8bpp或更高的任意色彩深度的視頻模式。如果某個模式硬件不支持,可以選擇轉化為另一模式。
·直接寫入線性的圖像幀緩沖(framebuffer)。
·用顏色鍵值(colorkey)或者alpha混合屬性創建用于繪圖的表面(surface)。
·Surface的blit能自動的轉化為目標格式。blit是優化過的,并能使用硬件加速。x86平臺上有針對MMX優化過的blit。
·硬件加速的blit和fill(填充)操作,如果硬件支持的話。
事件
·提供以下事件:
o 應用程序的visibility(可視性)發生改變
o 鍵盤輸入
o 鼠標輸入
o 用戶要求的退出
·每種事件都能通過SDL_EventState()關閉或者打開。
·事件經由用戶指定的過濾函數再被加入到內部的事件隊列。
·線程安全的事件隊列。
音頻
·設置8位和16位的音頻,單聲道或者立體聲,如果格式硬件不支持,可以選擇轉換。
·由獨立的線程執行音頻部分,并提供用戶回調(callback)機制。
·設計上考慮到了客戶定制的軟混音器,但實際上在例程中就包含了一個完整的音頻/音樂輸出庫。
CD音頻
·完整的CD音頻控制API
線程
·簡單的線程創建API
·用于同步的簡單的二進制信號量(semaphores)
定時器
·讀取已流逝的毫秒數。
·等待指定的毫秒數。
·設置一個10毫秒精度的周期性定時器。
字節序無關
·偵測當前系統的字節序
·快速轉換數據的函數
·讀寫指定字節序的數據
下載
SDL的官方下載地址為http://www.libsdl.org/download-1.2.php, 最新版本為1.2.8,分為運行庫Runtime Library和開發庫Development Library,使用SDL開發需要下載的是后者。由于SDL支持多平臺和多個開發工具如VC6、Visual Studio.NET 2003、Dev-C++等等,所以可以根據需要選擇合適自己的平臺版本。由于筆者采用VC6給朋友們講解SDL的使用,因此文章中只介紹了VC6下的安 裝方式,并使用了一個小例子做說明。如果您使用其他的平臺和工具,請在官方網站上查找相應的說明并按照要求去安裝使用。 更多內容請看游戲開發、網絡游戲攻略、Solaris基礎知識入門專題,或進入討論組討論。
?
轉載于:https://www.cnblogs.com/Henrya2/archive/2009/03/24/1420858.html
總結
以上是生活随笔為你收集整理的使用SDL打造游戏世界之入门篇 - 1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比较全的字符串验证类,有人顶的话以后继续
- 下一篇: “恩爱舍骨肉”下一句是什么