3.1 项目介绍

关于《飞机大战》游戏,想必许多读者都玩过,相对于其他游戏,它的玩法比较简单,画面也颇具视觉冲击力和吸引力,是使用Pygame练手的非常典型的小游戏。本章我们所要实现的《飞机大战》游戏并不具备原版游戏的全部功能,而是在后者的基础上做了简化,只保留了它的部分基本功能。

在着手编写代码之前,先给出它的效果图。我们将要实现的是如图3-1至图3-4所示的仿经典《飞机大战》的游戏,它有着四个不同的界面。

1. 开始界面

开始界面如图3-1所示,绘制有:

图3-1 开始界面

·背景图;

·飞机大战Logo;

·Start按钮。

单击Start按钮,即可进入游戏界面。

2. 游戏界面

图3-2 游戏界面

游戏界面如图3-2所示,绘制有:

·背景图;

·大、中、小三种不同类型的敌方飞机;

·我方飞机;

·子弹;

·“暂停”按钮;

·记分牌。

游戏规则如下。

·游戏过程中,敌方飞机随机出现在窗口顶部,并以一定的速度下落;大、中、小飞机出现的概率不同,大飞机出现的概率最小,小飞机出现的概率最大。

·我方飞机默认出现在窗口底部中间,把鼠标光标放置在上面按住左键可以拖动我方飞机的位置。

·子弹不断从我方飞机的顶部发射出来,发射出的子弹以一定的速度向上移动。

·敌方飞机碰撞到我方飞机时游戏结束,进入结束界面。

·敌方飞机碰撞到子弹时,敌方飞机被击中直至击落,这里涉及血量(HealthPoint,HP)的概念,不同类型的敌方飞机有不同的血量,飞机越大,血量越高;飞机越小,血量越低,这意味着小飞机很容易被击落,通常被子弹击中一次即被击落,而大飞机则需要被击中许多次才能被击落。

·敌方飞机被击中或击落,我方飞机飞行或碰撞到敌方飞机时都有一定的动态效果。

·游戏分数通过击落的飞机数量计算得出,每击落一架飞机,分数相应增加,不过不同的飞机类型有不同的得分权重。

·单击左上方的“暂停”按钮,游戏暂停,进入暂停界面。

·背景图以小于敌方飞机的速度不断向下循环滚动。

3. 暂停界面

暂停界面如图3-3所示,绘制的内容与游戏界面类似,不同之处只是在于“暂停”按钮的外观。此时,当“暂停”按钮的外观变成三角形时,再单击一次即会恢复游戏的运行。

除此之外,当游戏暂停时,无论是敌方飞机、我方飞机、子弹还是背景图,它们都会停止移动,就像画面定格在了“暂停”按钮被单击时的状态。

4. 结束界面

结束界面如图3-4所示,绘制有:

·背景图;

·一个大的方框,用于显示提示信息;

·方框内的提示信息包括最终得分、Restart按钮、Exit按钮。

图3-3 暂停界面

图3-4 结束界面

此时,单击Restart按钮会进入游戏界面重新开始游戏,单击Exit按钮会退出游戏。