SDL2-日志

SDL的日志功能很简单. 首先要明确,SDL的每个日志都由两个条件决定:

  • category:类型,可以是如下几个:

SDL2-错误检测和处理

SDL错误检测和处理一共就三个函数:

  • SDL_ClearError():清除所有错误
  • const char* SDL_GetError():获得前一个出错函数产生的错误信息(英文)
  • SDL_SetError(const char* fmt,...):设置自己的错误,格式类似printf。(这个函数总是返回-1

SDL的错误处理是这样的:SDL的函数首先会有一个int返回值表示函数是否出错了(一般0为成功,负数表示发生了错误),然后会向错误变量中记录这个错误的文字信息,这个时候你就可以通过SDL_GetError()来获得错误了。你也可以通过SDL_SetError()来向错误变量中记录自己的错误。SDL_ClearError()来清除错误变量记录的内容。

SDL2-剪切板

SDL操作剪切版的函数很简单:

  • char* SDL_GetClipboardText(void):获得剪切板内容
  • SDL_bool SDL_HasClipboardText(void):判断剪切板内是否有内容
  • int SDL_SetClipboardText(const char* text):将文字放入剪切板(返回0成功,返回负值失败)

SDL2-多线程

由于SDL2是C语言库,所以提供了多线程的库。但是我们是用C++编写的,不如直接使用C++的线程库咯。这部分等我有时间会补上的

SDL2-渲染器SDL_Renderer

SDL2渲染器


有了窗口之后,我们还需要有一个渲染器。渲染器用于将图像渲染到窗口上。

SDL2-HelloWorld

这里我们先来一个Hello World来看看什么是SDL。这一部分可能比较多。

SDL2-初始化

初始化并非只有SDL_Init一个函数。让我们来看看还有其他什么函数

SDL2-创建窗口

一个游戏,如果想要开始的话,必须得先有一个窗口。这里我们先来创造一个窗口。

SDL2是个啥

SDL2(Simple Direct Media Player 2) 是一个用于多媒体技术,游戏编程,计算机辅助设计的,一个用于绘图和事件处理的库。大多数人将其看作游戏引擎,包括其官网也是在大力宣传其在游戏编程方面的成果。但是正如DirectX一样,SDL的也被用来制作多媒体或者数据展示等。   SDL2比起SDL1来说改变的幅度很大,所以我们这里介绍的是SDL2而不是SDL1.最新的SDL应该是2.0.9版本。你可以从这里下载。   SDL2是一个跨平台的(Windows, Mac OS X, Linux, iOS, and Android),由C编写的程序库。也可以使用C++来编写,同时也给出了很多其他语言的支持,比如python的pygame和pygame-SDL。具体的支持见这里。   和OpenGL不一样,SDL2大部分用来处理2D游戏,但是其内置对OpenGL的原生支持,你也可以用它来编写3D游戏。SDL2是个底层的游戏引擎,这意味着它包含着绘图,时间与事件处理等基本操作,但是不提供帧动画,场景和几何变换等高级的功能,这些功能需要程序员自己利用SDL,数学知识和编程知识进行编写。SDL十分底层,可以用来在其上进行二次开发来制作新的游戏引擎(比如OGRE就是基于SDL2的)。   如果你想使用高级的游戏引擎,请参阅cocos2dx,Unity3D,Unreal Engine等知名的游戏引擎。这些引擎将大多数游戏编程的元素封装好了便于程序员使用。但是如果你想要从底层开发的话,SDL仍然是一个不错的选择。   SDL也提供了自身的API文档,你可以参阅这里