练习一种编程语言最好的技巧就是写点游戏的demo,因为当看到自己的code最后能以一种GUI的形式展现在自己面前的时候,人们往往会获得一种巨大的满足感。俗话说:兴趣就是最好的老师。此言得之。本文的内容就是讲一讲用python的第三方模块——pygame,写点小游戏的技巧。
一.利用pygame制作游戏的原理
- 基本概念:在pygame中,有两种极为重要的类别——Surface和Rect,我们日常中所看到的那些丰富多彩的游戏,以及里面数不胜数的人物,其实在一开始设计时都会将其抽象为简单的图形——比如说矩形。举几个例子,你看到某个游戏中的人物在跳跃,其实是一个矩型在上下移动;你看到有些人物在移动,其幕后就是一个矩形在平动,等等。对于这种抽象而来的矩形,在pygame中有一个专门的类别叫Rect,设计Rect的methods和properties是整个问题的core。在设计完Rect后,我们要做的就是把图像render到对应的Rect对象上,此时的图像也有个类别,叫做Surface。将Surface引入到程序中很简单,将Surface渲染到Rect中也只是一句话的事情,就是用Surface的blit的方法,具体的用法可以看official documentation,这里只讲思路,不讲details。
- 程序设计:大家都知道animation是由一帧一帧的静态图像构成的,我们想要绘画出流畅的动作(比如人物的移动等等),就要绘制整个动作所涉及到的所有frame。这个我们一般把它放到一个infinity loop中。当然在这个loop中除了绘制图片以外,我们还要加一点基本的logic,比如判断到底是要画人物的站立动作&#