SDL游戏教程《Lazy Foo' Productions - Beginning Game Programming v2.0》中文版(2)

这篇博客翻译自《Lazy Foo' Productions - Beginning Game Programming v2.0》,介绍了如何使用SDL在打开的窗口中显示图片。文章强调了代码模块化的重要性,并展示了如何初始化SDL、加载媒体以及关闭应用。通过SDL_Surface数据类型处理图片,利用SDL_LoadBMP加载BMP文件,并通过SDL_BlitSurface将图像复制到屏幕。最后,文章提到了SDL更新窗口表面和双缓冲机制的概念。
摘要由CSDN通过智能技术生成

本文翻译自《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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值