没有合适的资源?快使用搜索试试~ 我知道了~
首页SDL入门教程中文(最好的SDL入门教程,自己手工整理)
SDL入门教程中文(最好的SDL入门教程,自己手工整理)
5星 · 超过95%的资源 需积分: 48 1.5k 下载量 187 浏览量
更新于2023-03-03
评论 49
收藏 710KB PDF 举报
本教程是为电脑游戏制作的发烧友准备的。因为Linux的普及以及不受$M的牵制,SDL在过去的几年中,成为了跨平台开发PC游戏的首选。即使是在Windows平台下,SDL有具有自身的优势。与MFC使用不成熟的C++外表伪封装的win32api以及一家独唱推崇的COM风格和.net相比较,SDL是更纯粹的C风格。无论你是喜欢纯C还是OOP的C++,你都可以按照你自己喜欢的方式对SDL进行再次封装,只要你自己愿意,可以让自己的程序更接近C/C++的标准风格,让代码更加优美也更加容易阅读。
资源详情
资源评论
资源推荐
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.3:本教程的写作计划?
我是为那些热爱游戏并希望尝试投入到游戏制作中的人们准备的礼物。也就是说,这是
一个玩家写给其他玩家的游戏制作教程。我想,这个教程本身不可能简单,但是也绝对不是
“技术狂”的风格。我不希望去深挖一些技术细节,我只希望找出整个知识体系中对于游戏制
作最有帮助的部分,同时,我也不会避讳那些有助于帮助我们理解和记忆的看起来晦涩的原
理。游戏需要技术来实现,但是做游戏显然不是单纯的做技术研究。我会在自己的学习过程
中完善这个教程,如果你觉得更新太过于缓慢,可以在网上搜集到许多已经存在的教程。以
下这个教程是SDL官方推荐的,我也推荐给你们:
http://lazyfoo.net/SDL_tutorials/index.php
1.4:我目前的计划和心愿。
我是一个游戏策划,我最大的心愿是做出好玩的游戏。所以,显然,我做游戏的动力来
自于对于目前存在的所有游戏的满足度不够,以及已经通过多年策划得到的一个方案希望实
现出来以接受市场的考验。通过大量的分析和论证,我目前的项目计划集中在设计一款具有
角色扮演性质的大型多人在线同盟共时制回合战略游戏。这个项目的第一个计划就是实现类
似英雄无敌III的战场战斗效果,这就是我研究SDL的原因。
对于游戏策划方面的想法,大家可以看我的商博,上面也提到了一些考虑中的商业模
式。
http://i.cn.yahoo.com/lf426
八卦一点的,可以看我在sina上的主博,评论和牢骚也是不少滴^^
http://blog.sina.com.cn/fleetlong
最后介绍一下我以及曾经的团队UVi Studio。我本人以及之前的团队(2007 年 1 月
——2007 年 7 月)UVi Studio致力于网络游戏的市场分析与策划。简单点说,我们希望从事
整个网络游戏产业链上处于开始端(市场分析与策划)以及末端(运营)的工作,而将游戏
的具体制作外包。做一个不太恰当的比喻,就如同我们希望做网络游戏领域的“开发商”,而
非现在大部分公司采用的“开发”“承建”和“运营”全包的商业模式。现在,我们将不仅仅依靠
传统的“资本创业”模式,我们也关注技术创业的可行性,并一直在尝试。这种转变体现在形
式上,请记住这个名字:UVi Soft ( From 2008 )。
无论你是对游戏感兴趣的技术人才,艺术家还是看好游戏市场的资方,如果你对这个
项目感兴趣,请在第一时间与我们联系。
2、Visual C++ 下的安装与设置
2.1:获得Visual C++ 2008 Express Edition。
使用盗版不是一个好习惯。与其背上贼名,我更愿意放弃华丽的外表,使用朴实无华的
免费软件。你可能知道 Linux 和 GNU,但是也许你还不知道$M 也提供一些“免费的午餐”。
Visual Studio 的 Edition 版本就是这样的一种便当。作为商业公司的一种商业手段,免费的
VC 也具有一些吸引人的地方,比如漂亮的界面,与 Windows 完美的集成,没有宽度的文本
编辑(主要是跟 Vim 作比较),以及自动提醒的类成员(即所谓 Visual)等。你可以在官方
免费获得 VC 2008 Express。
http://www.microsoft.com/express/download/
2.2:获得VC下的SDL开发库。(Development Libraries)
你可以在 SDL 的官方主页找到下载。
http://www.libsdl.org/download-1.2.php
目前的 VC 版本,你会发现……找不到 VC9 的版本。无所谓了,
SDL-devel-1.2.13-VC8.zip (Visual C++ 2005 Service Pack 1)可以正常使用的。
2.3:为VC设置SDL库。
解压缩 SDL-devel-1.2.13-VC8.zip,docs 里面包含了官方文档,这将是你学习 SDL
的主要参考资料。找到你在硬盘上安装 VC 的位置,类似:
C:\Program Files\Microsoft Visual Studio 9.0\VC
打开 include 文件夹,在里面建立一个新文件夹,取名为 SDL,打开这个新的文件夹:
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\SDL
然后,将 SDL Development Libraries 中 include 文件夹里面的文件全部拷贝到刚才建立起来
的那个新文件夹中。
然后,回到 VC 的.\VC 文件夹下,打开 lib 文件夹:
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib
将 SDL Development Libraries 中 lib 文件夹下的 SDL.lib 和 SDLmain.lib 两个文件拷贝到刚才
的那个 VC 的 lib 文件夹下。
最后,把 SDL Development Libraries 中 lib 文件夹下的 SDL.dll 文件拷贝到
C:\WINDOWS\system32
下。当然,另外一个选择是将 SDL.dll 随时绑定到使用了 SDL 库编译的*.exe 文件所在的文
件夹中。这通常在发布你的程序的时候使用。
2.4:建立VC下使用SDL库的工程。
1) 启动 Microsoft Visual C++ 2008 Express Edition;
2) File -- New -- Project
3) Project types: Visual C++: Win32 (默认的)
Templates: Visual Studio installed templates: Win32 Console Application
Name: <Enter_name> (为你的工程起个名字)
4) Win32 Application Wizard -- Application Settings
Application type: Console application
Additional options: Empty project
5) 现在添加一个 C++源文件。右击 Source Files,Add -- New Items...
选择 Categories 为 Visual C++的 Code;
Templates 为 Visual Studio installed templates 的 C++ File(.cpp);
为源文件起个名字。
6) 设置 Project。Project -- project_name Properties...(Alt+F7)
Configuration Properties -- C/C++ -- Code Generation -- Runtime Library:
修改为:Multi-threaded DLL (/MD)
Configuration Properties -- Linker -- Input -- Additional Dependencies:
添加:SDL.lib SDLmain.lib
Configuration Properties -- Linker -- System -- SubSystem
如果是 Debug 版本,建议不改变原先的 Console (/SUBSYSTEM:CONSOLE),
因为调试信息可以出现在 console 的窗口里面。
Release可以修改为 Windows (/SUBSYSTEM:WINDOWS)
2.5:第一个使用SDL的C++程序。
将下面代码输入到刚才建立的 cpp 文件中:
#include <iostream>
#include "SDL/SDL.h"
int main(int argc, char* argv[])
{
try {
if ( SDL_Init(SDL_INIT_EVERYTHING) == -1 )
throw "Could not initialize SDL!";
}
catch ( const char* s )
{
std::cerr << s << std::endl;
return -1;
}
std::cout << "SDL initialized.\n";
SDL_Quit();
return 0;
}
Build -- Build Solution
Debug -- Start Without Debugging
你就可以看到你的第一个 SDL 程序的运行情况了。
3、MinGW 下的安装与设置
3.1:MinGW 是什么?
MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了
一系列免费的Windows 使用的头文件和库文件;同时整合了GNU
( http://www.gnu.org/ )的工
具集,特别是GNU 程序开发工具,如经典gcc, g++, make等。MinGW是完全免费的自由软
件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基
础支持,为了在Windows下工作的程序员熟悉Linux下的C++工程组织提供了条件。
3.2:为什么使用MinGW?
因为我和很多 IT 人士一样,不愿意吊死在$M 这棵树上。且不说开源这个理念的伟大,
3.3:MinGW 的下载和安装。
MinGW的官方主页是:
仅仅就 Windows 的安全性也已经让人们很不安心了。如果再深入一点从编写程序来看,在
C++标准尚不成熟时期产生的 MFC 今天看来基本上就是盖子大叔凭着个人(或许是$M 公司
^^)理解所使用的 C++方言。在我们期盼 C++0x 时代到来之前,没有任何实际行动能比严
格遵循 C++的 ISO 标准更能表达我们对于 C++这个伟大的哲学体系的尊重。从这个角度来
说,遵循 ISO 标准的实现就是好的实现。所以,MinGW 不会比 VC 差,况且,他既是开源
软件家族中的一员,也是*nix 平台下事实标准 GCC 的翻版。如果有一天我们开始使用 Linux
平台了,会因为今天透过 MinGW 所了解的 GCC 知识而受益。
http://www.mingw.org/
你很容易找到下载
是个在开发中的项目。
的链接。下载文件是放在sourceforge上的,这也表明MinGW本身也
/showfiles.php?group_id=2435http://sourceforge.net/project
因为这才是软件最真实的一面。 下载页面上有很多令人眼花缭乱的文件,不用害怕,
当然,这个软件的提供者为普通使用者也提供了最为简单的下载和安装方式。你只需要下载
剩余151页未读,继续阅读
hfw_1987
- 粉丝: 36
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论30