在屏幕上显示图像
现在你已经打开了一个窗口,让我们在上面放一张图片。
注意:从现在开始,教程将只涉及源代码的关键部分。如果想看完整的程序,你必须下载完整的源码。
//启动SDL并创建窗口
bool init();
//加载媒体
bool loadMedia();
//释放媒体并关闭SDL
void close();
在第一个教程中,我们把所有的东西都放在主函数中。由于这是一个小程序,我们可以摆脱这种做法,但在真实的程序中(比如视频游戏),你希望你的代码尽可能的模块化。这意味着你希望你的代码是整齐的块,每个块都易于调试和重用。
在这里,这意味着我们用函数来处理初始化、加载媒体和关闭SDL应用程序。我们在源文件的顶部声明这些函数。
我收到很多邮件,说在C语言中调用这个函数 "close "会引起冲突,因为不支持函数重载。这也是我在本教程中使用C++的原因之一。所以这个函数被称为 "close "并不是bug。
//我们要渲染的窗口
SDL_Window* gWindow = NULL;
//窗口所包含的表面
SDL_Surface* gScreenSurface = NULL;
//我们将加载并显示在屏幕上的图像。
SDL_Surface* gHelloWorld = NULL;
这里我们声明一些全局变量。通常情况下,你要避免在大型程序中使用全局变量。我们之所以在这里这样做,是因为我们希望源代码尽可能的简单,但是在大型项目中,全局变量会使事情变得更加复杂。由于这是一个单一的源文件程序,我们不用太担心这个问题。
这里有一个新的数据类型,叫做SDL表面。SDL表面只是一种图像数据类型,它包含了图像的像素以及渲染所需的所有数据。SDL表面使用软件渲染,这意味着它使用CPU来渲染。可以渲染硬件图像,但是比较困难,所以我们先从简单的方法来学习。在以