上节课我们学习了怎么让小鸟煽动翅膀,发出声音。这节课,我们让游戏动起来。
让我们先看一下这节课的游戏效果。
我们看到,游戏背景匀速运动,我们小鸟也以一定速度下落了。先看下本节课的代码。
首先,我们看一下游戏背景运动是怎么实现的。
我们新增了一个叫wall的变量图片,为了让墙匀速向左移动,我们在循环体内每次让墙面的X坐标向左移动2个像素。为了避免墙面离开舞台,我们采用取余操作,让wallX在0~-46之前循环。
在编写小鸟下落的代码前,我们先分析一下小鸟的下落逻辑:游戏开始时,小鸟以一定的速度下落,当键盘按下空格键,小鸟上升一段时间,然后继续下落的动作。小鸟下落的过程类似于自由落体,儿按下空格键后就类似于一个抛物线。我们来看看python怎么实现这个算法:
我们首先定义了5个变量:playerVelY 代表了小鸟的初始飞行速度(向上9);playerMaxVelY 小鸟最大的下落速度;playerAccY 小鸟每次下落给的加速度;playerFlapAcc 当按下空格键时,给小鸟的向上速度;playerFlapped 是否按下空格键了。
当键盘空格键按下时,我们增加了如下逻辑:
接着,我们计算了小鸟的运行速度
这样,我们的小鸟就能实现自由下落,按下空格时飞起的算法啦。