我前段时间学习了SDL,并使用SDL写了几个小应用和一个很简单小游戏,由于前段时间我事务比较繁忙,没有做任何学习笔记以及开发经验的总结等。后来觉得网上关于SDL的资源比较少,所以我决定等以后有时间把自己的学习和开发过程补一下,也就是现在。在介绍如何用VS配置SDL2.0之前,我先简单介绍一下SDL
SDL介绍
SDL简介
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。因此SDL被广泛的用于许多著名的游戏,其中最著的名游戏为Civilization: Call To Power
SDL功能
·视频
·事件
·音频
·CD音频
·线程
·定时器
·字节序无关
支持系统
·Linux
·Win32、Win64
·BeOS
其它
SDL内置了调用OpenGL的函数。
通过使用SDL_image、SDL_ttf、SDL_mixer、SDL_net等外部扩展库,可以轻松实现JPG、PNG、TIFF图像的加载使用,TrueType字体的使用,MP3文件的使用、网络相关的使用等。
SDL也有其他语言的包装,可以在这里查看 SDL用C语言写成,但是可以很容易在C++下面工作,并且SDL绑定了许多其它的语言,这其中就包括Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, and Smalltalk。
SDL配置
准备工作
- Visual Studio(2005,2008,2010,2013都可以,这里我用2010做配置步骤的展示)
- SDL压缩文件(最基本的压缩文件SDL2-devel-2.0.3-VC.zip,其他的根据需要进行配置,配置过程是一样的。这里我使用SDL2-2.0.3.zip提供的样例进行配置结果的检验)
如果没有Visual Studio可以去官网下载https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
SDL同样也有其官网http://www.libsdl.org/download-2.0.php
准备工作做完之后就开始正式安装
步骤一:解压SDL压缩文件
解压SDL2-devel-2.0.3-VC.zip,并把SDL2-2.0.3.zip中的test文件夹加压到SDL2-2.03文件夹中
完成步骤一后SDL2-2.03文件夹中应该有这些文件
步骤二:打开Visual Studio,创建一个Win32控制台应用程序的空项目
新建一个项目:文件->新建->项目
新建Win32控制台应用程序:勾选“为解决方案创建目录”
点击下一步
选中“控制台应用程序”和“空项目”,点击“完成”
步骤三:添加现有项以便测试配置的正确性
右击源文件,添加->现有项
选择一个测试文件(建议和我使用同一个,很多测试文件运行需要包含另外的SDL库)
步骤四:在项目属性中添加路径
项目->属性
VC++目录->包含目录:..\SDL2-2.0.3\include;$(IncludePath)
链接器->常规->附加库目录:..\SDL2-2.0.3\lib\x86;%(AdditionalLibraryDIrectories)
链接器->输入->附加依赖项:SDL2.lib;SDL2main.lib;SDL2test.lib;%(AdditionalDependencies)
点击<编辑>,再点击“确定”
顺序点击应用和确定,然后进入下一步骤
步骤五:生成Demo,如果成功则可以看到“生成成功”字样
点击生成->生成Demo(U)
如果配置成功则会在左下角位置显示生成成功,如果显示生成失败,基本是修改属性时输入失误
步骤六:将 SDL2-2.0.3 -> lib -> x86 文件夹中的dll文件和SDL2-2.0.3 -> test 文件夹中的bmp文件复制到SDLDemo -> Debug 文件夹中
将../SDL2-2.0.3/lib/x86/目录下的所有dll文件考入../Demo/Debug/目录下
将../SDL2-2.0.3/test/目录下的所有bmp文件考入../Demo/Debug/目录下
步骤七:效果展示
点击../Demo/Debug/Demo.exe文件
或直接在Visual Studio环境中执行
SDL还有很多其他的库,如SDL2_ttf,SDL2_image等,这些资源都可以在网上找到,配置方法都是一样的。另外使用SDL开发应用经常需要使用多线程机制,多线程文件的配置也是一样的
我在开发的过程中用到的所有库:
使用SDL2_ttf时需要另外下载一个.ttf文件,并将其放在../Demo/Demo目录下(这个是默认路径,其他位置也可,不过在程序中引用时要给出其相对或绝对路径)
我的部分开发
Watch
T9Keyboard
Game
我会在以后不断跟进关于SDL的文章,详细地展示自己的学习成果,希望对SDL有兴趣的读者可以关注我