SDL入门教程(一):
1、一切从零开始
1.1:SDL是什么?
SDL 是 Simple 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. )
SDL 在 GNU LGPL version 2 下发布,这意味着你可以免费的使用。并且可以免费的用
于商业软件的制作(只要你直接使用 SDL 的动态链接库,Windows 下的 SDL.dll)。如果你
将 SDL 库编译进了自己的二进制代码中,你需要指明你所使用的 SDL 库的版本以及包括你
自己修改的源代码,并说明这些代码的原始出处。这是很宽松的法律,你可以用如此强大的
多媒体库完全合法的免费开发商业游戏。
1.2:本教程是为谁准备的?
本教程是为电脑游戏制作的发烧友准备的。因为 Linux 的普及以及不受$M 的牵制,SDL
在过去的几年中,成为了跨平台开发 PC 游戏的首选。即使是在 Windows 平台下,SDL 有
具有自身的优势。与 MFC 使用不成熟的 C++外表伪封装的 win32api 以及一家独唱推崇的
COM 风格和.net 相比较,SDL 是更纯粹的 C 风格。无论你是喜欢纯 C 还是 OOP 的 C++,
你都可以按照你自己喜欢的方式对 SDL 进行再次封装,只要你自己愿意,可以让自己的程
序更接近 C/C++的标准风格,让代码更加优美也更加容易阅读。
事实上,在我看来,有了标准 C++(兴奋的期待 C++0x 的发布),SDL 和 OpenGL 这
些标准或免费库的支持,完全可以扔掉与 C++标准并不怎么和谐的“Windows 编程”了。没有
谁愿意被别人牵着鼻子走,这个道理在软件行业尤其的明显。
评论1