Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1676229
  • 博文数量: 311
  • 博客积分: 7778
  • 博客等级: 少将
  • 技术积分: 4186
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-09 19:59
个人简介

蓝点工坊(http://www.bluedrum.cn) 创始人,App和嵌入式产品开发。同时也做相应培训和外包工作。 详细介绍 http://pan.baidu.com/s/1y2g88

文章存档

2012年(3)

2011年(115)

2010年(170)

2009年(23)

分类: C/C++

2009-12-16 17:08:06

 
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所支持的语言很多。(Including Ada, 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其它扩展:

 

图形界面

- 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

 
 

 

.
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联机文档.

 或

以及FAQ

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

  • 下载
  • 解压 tar xvzf SDL_ttf-2.0.9.tar.gz
    • cd SDL_ttf-2.0.9
  • SDL_ttf 可以用freetype支持库
    • 下载
    • 解压 tar xvzf freetype-2.3.11.tar.gz
    • 然后./confgiure & make & make install
  • 生成makefile ./configure
  • 编译,安装 make & make install

SDL-mixer库安装

  • 下载
  • SDL-mixer 需要libmad 支持
    • 下载
    • 解压 tar xvzf libmad-0.15.1b.tar.gz
    • 然后然后./confgiure & make & make install
  • 建议安装libid3tag库
    • 下载
    • 解压 tar xvzf libid3tag-0.15.1b.tar.gz
    • 然后然后./confgiure & make & make install
  • 解压 tar xvzf SDL_mixer-1.2.9.tar.gz
    • cd SDL_mixer-1.2.9
  • 生成Makefile ./configure --enable-music-mp3-mad-gpl --enable-music-mp3=no
  • 关于为什么用libmad 请参见http://blog.chinaunix.net/u3/105675/showart_2096192.html
  • 注意安装时,请用LINUX下的系统->管理->声卡检测来是否正常.

SDL-net库安装

  •   下载
  • 解压 tar xvzf SDL_net-1.2.7.tar.gz
    •  cd SDL_net-1.2.7
  • 生成makefile ./configure
  • 编译,安装 make & make install

SDL-gfx库安装

主页 :

  •   下载
  • 解压 tar xvzf SDL_gfx-2.0.20.tar.gz
    •  cd SDL_gfx-2.0.20
  • 生成makefile ./configure
  • 编译,安装 make & make install

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
  • 下载                                              
  • 解压. tar xvzf asylum-0.3.2.tar.gz
    • cd asylum-0.3.2 
  • 编译 make
  • 运行 export LD_LIBRARY_PATH=/usr/local/lib ; ./asylum     
  • 运行界面

仙剑奇侠传

   70后年代,单机版的经典DOS游戏.我能向学生解释的只有电视剧<<仙剑奇侠传>>已经拍到3了. sdlpal是一个重写的程序,即作者在已经分析出原有游戏的资源文件格式(如图片,音乐,游戏进度,场景等)用SDL重写的一个游戏.因此完整的游戏还需要dos版游戏资源文件
  官方网站 .
我下载是 sdlpal-37652.zip.

 
  游戏资源的可以下载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

aa
 
阅读(4385) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-08-06 09:58:48

楼主,SDL中中文显示乱码,有处理过吗? QQ:409666587