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库的安装

建议下载 sdl联机文档.

http://www.libsdl.org/archives/sdldoc-html.ziphttp://www.libsdl.org/archives/SDLRef.chm

以及FAQ http://www.libsdl.org/archives/SDL-1.2-FAQ.zip

SDL_image库的安装

  • 下载 http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.8.tar.gz
  • 预先安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库安装

主页 : http://www.ferzkopp.net/Software/SDL_gfx-2.0/

SDL游戏测试

我选择几个成功运行的游戏测试

超级马里奥                                       

  • 源码下载 http://smw.supersanctuary.net/18Beta2/smw-1.8-beta2-src.zip
  •   解压 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

 

GitHub 加速计划 / sd / SDL
8.9 K
1.68 K
下载
Simple Directmedia Layer
最近提交(Master分支:3 个月前 )
a57c5669 - 3 个月前
20a6193e - 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐