本文翻译自《Lazy Foo' Productions - Beginning Game Programming v2.0》,为原创翻译,转载请注明出处。
原地址 http://lazyfoo.net/tutorials/SDL/02_getting_an_image_on_the_screen/index.php
现在你已经打开了一个窗口,让我们在窗口上显示一张图片吧。
注意:从现在开始,这个教程只写出关键部分的代码。如果要得到全部代码,你需要下载完整的源代码。
在第一个教程中,我们把所有东西都塞到main函数中。因为这是一个小程序所以没有太大问题,但在现实编程中(比如说视频游戏),你应该尽可能把你的代码模块化。这意味着你需要把你的代码写的更整洁,这能令调试和代码重用变得简单。
//初始化SDL并创建一个窗口
bool init();
//加载媒体 (media)
bool loadMedia();
//释放媒体并关闭SDL
void close();
在上面的代码中,我们看到了三个函数声明,他们分别用来初始化SDL、加载媒体和关闭SDL应用。我们在源文件的很靠前的位置声明了这三个函数。
//我们用来展示的窗口
SDL_Window* gWindow = NULL;
//包含在窗口中的一个表面(surface)
SDL_Surface* gScreenSurface = NULL;
//我们将要在屏幕上加载和显示的图片
SDL_Surface* gHelloWorld = NULL;
在这里,我们声明了一些全局变量。通常我们要避免在大程序中使用全局变量。在这里声明全局变量的原因是我们希望源代码尽可能的简单,但是在大的项目中,全局变量会使得事情变得复杂。这是一个单文件程序,我们不用为此过于担心。
在这里有一个名为SDL_Surface的新数据类型。一个SDL_Surface 是一种图片数据类型,它包含了一张图片的像素以及所有需要渲染的数据。SDL_Surface