SDL2-日志
SDL的日志功能很简单. 首先要明确,SDL的每个日志都由两个条件决定:
category:类型,可以是如下几个:
SDL的日志功能很简单. 首先要明确,SDL的每个日志都由两个条件决定:
category:类型,可以是如下几个:
SDL错误检测和处理一共就三个函数:
SDL_ClearError()
:清除所有错误const char* SDL_GetError()
:获得前一个出错函数产生的错误信息(英文)SDL_SetError(const char* fmt,...)
:设置自己的错误,格式类似printf。(这个函数总是返回-1)SDL的错误处理是这样的:SDL的函数首先会有一个int返回值表示函数是否出错了(一般0为成功,负数表示发生了错误),然后会向错误变量中记录这个错误的文字信息,这个时候你就可以通过SDL_GetError()
来获得错误了。你也可以通过SDL_SetError()
来向错误变量中记录自己的错误。SDL_ClearError()
来清除错误变量记录的内容。
SDL操作剪切版的函数很简单:
char* SDL_GetClipboardText(void)
:获得剪切板内容SDL_bool SDL_HasClipboardText(void)
:判断剪切板内是否有内容int SDL_SetClipboardText(const char* text)
:将文字放入剪切板(返回0成功,返回负值失败)由于SDL2是C语言库,所以提供了多线程的库。但是我们是用C++编写的,不如直接使用C++的线程库咯。这部分等我有时间会补上的
有了窗口之后,我们还需要有一个渲染器。渲染器用于将图像渲染到窗口上。
这里我们先来一个Hello World来看看什么是SDL。这一部分可能比较多。
初始化并非只有SDL_Init
一个函数。让我们来看看还有其他什么函数
一个游戏,如果想要开始的话,必须得先有一个窗口。这里我们先来创造一个窗口。
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文档,你可以参阅这里
这里是本书第一章的笔记,第一章主要强调了一些数值计算方面的问题。