Linux(F7)下使用SDL开发

SDL安装: Linux / Windows
1.我用的Linux发行版是Ubuntu9.04,源中已经包含了SDL的开发包。
使用下面的命令即可:
sudo apt-get install libsdl1.2-dev
源里面的资源有一定的规律,库文件一般都是以'lib'开头,比如'liblua*'是针对lua的库,
后面会跟版本号,如果是开发包,则包含'-dev',开发包包含头文件,这样就可以编程了,不然就只有动态的连接库。我一般搜有没有某个开发库的时候,拿SDL举例,先把源更新:
sudo apt-get update
然后
sudo apt-get install libsdl(然后按两次TAB键,就可以看到可选项,然后自己补全合适的版本号等等)

上面安装了SDL的基础库,但是还有几个扩展库,也可能是我们会用到的,特别是SDL_image库,没有它,我们就只能使用"*.bmp"图片,它扩展了".jpg","*png"等格式的图片。此外还有网络,声音,字体等等。

sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-net1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev

用我上面说的方法还可以找到很多,比如这样。。。
wang@ubuntu:~/Download/t5$ sudo apt-get install libsdl-

libsdl-console       libsdl-mixer1.0-dev libsdl-perl
libsdl-console-dev   libsdl-mixer1.1-dev libsdl-ruby
libsdl-dev           libsdl-mixer1.2      libsdl-ruby1.8
libsdl-erlang        libsdl-mixer1.2-dev libsdl-sge
libsdl-gfx1.2        libsdl-mixer-dev     libsdl-sge-dev
libsdl-gfx1.2-4      libsdl-net1.1-dev    libsdl-sound1.2
libsdl-gfx1.2-dev    libsdl-net1.2        libsdl-sound1.2-dev
libsdl-image1.0-dev libsdl-net1.2-dev    libsdl-stretch-0-2
libsdl-image1.1-dev libsdl-ocaml         libsdl-stretch-dev
libsdl-image1.2      libsdl-ocaml-dev     libsdl-ttf1.2-dev
libsdl-image1.2-dev libsdl-pango1        libsdl-ttf2.0-0
libsdl-image-dev     libsdl-pango-dev     libsdl-ttf2.0-dev

总之,在ubuntu9.04中安装SDL是非常简便的,貌似Ubuntu安装很多软件都很简单。。。。

在Linux下面我常用的IDE是Code::Blocks。
sudo apt-get install codeblocks (这个就不要-dev了,我们只是用这个软件而已)

CodeBlocks工程向导里面直接就有SDL工程,创建就OK了,方便了不少新手对编译选项的设置。示例工程显示了一副bmp图片。

2。Windows安装。
Windows下面我仍然使用CodeBlocks作为IDE,因为夸平台,我装的双系统切换起来方便,当然也可以使用DEV-CPP,VC 等等。

#其实我觉得windows下面似乎要复杂一点。
登录SDL的官方网站
http://www.libsdl.org (很多开源项目的网站都是org而不是com,因为是非商业性质的,我发现自从我接触Linux后,访问了很多.org的网站,而以前全是.com,也可能是以前没留意罢了)
在首页的左侧,Download里面选择SDL 1.2 (SVN是开发中的版本,建议不要使用)
里面你可以下到源代码和各个平台的运行库和开发工具。
我在Development Libraries下面选择的是Win32中的Mingw32版本,因为Codeblocks是基于Mingw32的。
然后去下载CodeBlocks:http://www.codeblocks.org/,选Windows版本。

把下的SDL包解压,然后要进行几个步骤:
1.把 /include/SDL中的文件都拷贝到上一层目录 /include 下面。(为了使用CodeBlocks的向导创建工程)
2.把 /bin目录下的SDL.dll文件拷贝到系统的system或system32目录下面。
3。使用CodeBlocks创建SDL工程,会让你选择SDL的目录,选择就OK了。

还有SDL的一些扩展库,SDL官方网上也有,
http://www.libsdl.org/projects/
列表中有,但是只有VC9的开发包和源码。看来需要自己动手编译了。


#呵呵,希望大家都把平台大建好,写属于我们自己的游戏。。。

F7的软件包里边有SDL,如果你选择了一些基本的开发包,那么应该包含了SDL,就不需要了再另外安装了。可以使用下面的命令来查看SDL的安装情况:

rpm -qa | grep SDL

如果没有找到相应的RPM包,那么可以去这里下载。

SDL只包含了最基本的东西,更多的扩展可以在这里下载.其中常用的有SDL_image,SDL_ttf,SDL_mixer等,安装的时候需要注意带有devel的是开发库,而不带的是运行库,一般两个都需要安装。

安装好SDL以后就可以开始写第一个程序了,需要注意的是编译程序时应该加上SDL的链接,如:

gcc -lSDL -o hello hello.c

如果你还使用了其它库,那么也要加上相应库的连接:

gcc-lSDL -lSDL_image -o hello hello.c

下面就可以使用运行SDL程序了,在X下面应该不会有什么问题的,不过如果想在终端下运行可能就会出现问题了。一个先决条件是启动Linux时要在 grub中加参数vga=0×314(后面这个根据你的需要可以调整),加这个参数后Linux终端就开始使用FrameBuffer了。

下面是不同分辨率、位数所对应的16进制数:
|640×480 800×600 1024×768 1280×1024
—-+——————————————
256 | 0×301 0×303 0×305 0×307
32k | 0×310 0×313 0×316 0×319
64k | 0×311 0×314 0×317 0×31A
16M| 0×312 0×315 0×318 0×31B
这样在终端下使用SDL的条件已经具备了,开始运行编译好的SDL程序(你可以在SDL官方网站上下载一些不错的例子),不过你很可能会得到下面的错误信息:

Enable to open mouse.

然而我在单用户模式下运行程序却没有这个错误信息。

google了一下,查到应该是鼠标设备文件在终端下没有权限被读取,这下明白了为什么在单用户模式下程序可以正常运行,单用户模式下本来登录的就是root,所以不会存在权限的问题。

于是在/dev/目录下找到了鼠标设置,我的F7中有下面三个文件:
crw—— 1 root root 13, 63 08-31 23:44 mice
cr——– 1 root root 13, 32 08-31 23:44 mouse0
cr——– 1 root root 13, 33 08-31 23:44 mouse1
经过我测试表明需要对mice这个设备文件权限进行修改:

chmod 0644 mice

把这个设备的的读权限给其它用户了,这样普通用户也可以在终端下正常运行SDL程序了。

OK,使用SDL开发的准备工作已经全部完毕!SDL的开发之旅就要开始了。

你可能感兴趣的:(SDL)