精灵页是保存在一个图像文件上的所有图片。如果你想处理很多图片,但又不想处理很多图像文件的话是非常有用的。你可以在Blit的时候对一部分进行剪切,这样就能够得到单个的图片,下面我们就看看怎么样从一张精灵页上剪切一张图片。
以上是一些全局的变量。屏幕表面,事件是我们看到过的。我们也有一个保存所有圆点精灵的表面,也就是精灵页。最后是定义了一个有四个元素的数组,它们将保存4个圆点精灵的偏移和尺寸。
以上是我们的Blit函数,比起前几篇教程的函数略有不同。我们在函数中加了一个SDL_Rect参数,该参数传递我们要剪切的源表面的哪一部分表面。
在主函数中,当所有的东西都准备就绪了,我们就开始设置一下剪切区域假设我们要剪切如下的精灵页:
我们把要剪切的矩形设置成指定的区域。
现在我们用SDL_FillRect()函数把屏幕填充成白色,该函数有二个参数,第一个就是要填充的表面,第二个就是颜色了。
现在我们就开始Blit精灵,注意,我们每次Blit的源都是同一个,只是我们选取了不同的区域而已。
最后的结果就如下了。
Powered by: C++博客 Copyright © 大熊猫