Task 6
飞机大战游戏设计
1. 代码的整体框架
首先设置游戏界面的大小、标题、背景图片、飞机图片(正常、爆炸)、子弹图片;然后设置两个list,分别存储敌机和被击毁的飞机;然后初始化分数、射击频率、敌机移动频率,并设置游戏循环帧率;然后进入游戏的主循环部分;然后在gameover后显示最终得分;最后处理游戏退出。
在游戏的主循环部分主要包括以下部分:
(1)按一定频率发射子弹;(2)按一定频率生成敌机;(3)移动子弹;(4)移动敌机;(5)敌机与玩家飞机相撞处理方法;(6)敌机被子弹击中处理方法;(7)一系列绘制、显示的方法,包括:绘制背景、绘制玩家飞机、显示子弹、显示敌机、绘制得分、更新屏幕;(8)获取、处理键盘事件;(9)处理退出游戏。
一共个建立了3个类,分别是:(1)子弹类;(2)玩家飞机类;(3)敌机类
2. 每个类及每个函数的作用
(1)子弹类:子弹类里包含了两个函数,一个是用来定义子弹的基本属性,包括:子弹的图片、位置、移动速度,另一个用来计算子弹位置。
(2)玩家飞机类:主要是三个函数:1. 定义基本属性;2. 如何发射子弹;3. 如何移动
1. 基本属性:设置了飞机的图片、大小、位置、速度、是否被撞,并建立了存储飞机发射子弹的集合;
2. 如何发射子弹:调用了子弹类,给子弹类传递了实参,包括子弹的图片和位置;
3. 如何移动:设置了飞机上、下、左、右移动的方法,并防止飞机出界面
(3)敌机类:主要是三个函数:1. 定义基本属性;2. 如何移动
1. 基本属性包括:敌机图片、敌机坠毁图片、敌机位置、敌机速度
2. 如何移动:计算敌机位置
3. 代码实现过程中遇到的问题
1. 开始python文件直接双击会出现闪退现象,后来发现是没安装pygame,安装pygame后就可以成功运行了;
2. 碰到了很多没见过的函数,比如定义图片位置和大小的Rect(left, top, width, height),还有rect.bottom、rect.midtop等的其他功能函数,帧率设置函数、显示函数、绘制函数等。