SDL中文教程

_(:3」∠)_目前一团乱还请各位见谅
总之各位随意~

关于本博客

SDL是一个轻量级的,用C语言开发的多媒体库。它包含了图像绘制、文字绘制、事件处理、声音播放等模块。因为SDL的易用以及它的扩展库的完整性,很多2D游戏都使用SDL开发,其中就包括这几年大热的移动平台上的游戏《愤怒的小鸟》。

这个博客是昨天刚刚建立的:)。我最初的想法就是:既然SDL非常易用,那么何不做一套专门给那些学习了一段时间C语言却又不知道自己究竟能干什么的编程初学者做一套使用SDL进行2D游戏编程的教程呢?C语言并不是一门容易学习的语言(甚至到现在我都不敢说自己懂C语言),而且C语言并不像这几年大热的编程语言那样,标准库里什么都有,想写什么直接从标准库里取相应的函数。所以我觉得C语言的初学者或许会很迷茫吧。而做这样一套教程的初衷大概就是想告诉那些迷茫的人们C语言的一种使用方法,以此来提升他们对编程的兴趣吧。

我好像又把话说大了(:3」∠)

然后说说从个人角度上看SDL的特点。

1.跨平台。确确实实是跨了N个平台,甚至包括NDS这种平台。有了SDL,你甚至可以在windows、linux、Android上任意移植你的游戏。当然,前提是你目标平台的编译器认识你的代码( ̄▽ ̄)”。有了SDL泥甚至可以只用c语言开发安卓游戏哟。

2.开源。

3.SDL2.0绘图效率很高。事实上相较之SDL1.2我个人比较喜欢SDL2.0的原因也是在此。个人感觉(其实我没看过源码)SDL1.2应该是个跟当年的DirectDraw差不多的东西,像素填充什么的,有相当程度上是要磨CPU的。而SDL2.0从绘图方式上就革新了,抛弃了之前的surface与clip的模式,把实际绘制的东西改为了Texture,而把之前的surface改为了创建Texture的一个临时环节。而texure,顾名思义,其实就是DirectX、OpenGL这些底层的3D硬件加速API的贴图。当下DirectX、OpenGL标准下的显卡的渲染管线无非就是:

1.把顶点(可以理解成坐标)传给显卡 。2.把texture传给显卡。 3.告诉显卡怎么处理这些数据(shader)。 4.显卡把东西给你显示出来。

而基于DirectX、OpenGL(移动平台是OpenGL ES)的SDL2.0,正是恰好地利用了当下显卡的能力。

4.SDL可以用作3D图像引擎和底层DirectX/OpenGL API的中间层。当然,其实如果把SDL这样用的话,那就真是很薄的一层了:)

5.易用。这是相对而言的,比如你用了SDL这个库之后,基本就不用去理会Windows那些又臭又长用不着的参数又多的API了。我不是在讨论信仰问题也不是要诋毁windows,我是在客观陈述windows api那个要初始化一个窗口必须要堆100行代码的设定实在是打击初学者积极性的事实。

本站的大概目标任务(?):

1.翻译Twinklebear的SDL2.0教程,并加译注

2.一些关于如何将SDL程序移植到android上的教程

3.在Android上使用OpenGL ES+SDL开发3D程序(仅作抛砖引玉之用)

4.一些SDL相关技巧

Comments