python实现飞船射击矩形的小游戏
本文介绍怎么利用python+pygame来实现飞船射击矩形的小游戏,效果图如下图:

工具/原料
Sublime Text
Git
游戏规则
1、 启动程序后,程序全屏显示,并播放背景音乐及显示飞船、矩形、三条命(飞船)、最高分(获取文件的最高分)、分数(0)、等级(1)和最中间“Play”按钮;
2、 点击“Play”或者按键盘“P”开始游戏,默认情况下,飞船在左边缘垂直居中,而矩形在右边缘顶部,并上下移动(先从上往下,到底部再往上,到了顶部再往下,这样一直循环);
3、 游戏开始后,键盘上下键控制飞船上下移动,按空格键控制飞船射击,每次只能射击一次,当子弹消失在右边缘或者击中矩形,按空格键才能射击第二次;
4、 游戏开始后,射中一次矩形得分50,当射中3次后,游戏升高一级;级别升高后,飞船移动速度和矩形移动速度都变的更快,射中一次的分数也变多;
5、 游戏开始后,如果有三次未射中到矩形,游戏结束,并显示“Play”按钮。
新建类
1、 新建类之前,需要先来分析一个公共模块file,代码如下图: 1.函数“load_file”用来读取文件的信息(为了方便,使用字典)并返回,使用“try...except...”,如果存在文件,则返回文件的信息(pickle.load(f));如果不存在文件,则输出错误信息并返回0; 2.函数“save_file”用来保存信息到文件,分两种情况,如果文件不存在(statsObj == 0),则直接把字典信息保存到文件;如果文件存在,则修改文件中的最高分数据。


4、 新建类“Bullet”,用来定义“Bullet”类的基本属性及初始值,和所需要的函数(分析重点代码),代码如下图: 1.调用“super(Bullet, self).__init__()”,用于继承父类(Bullet用到数组,需要精灵“Sprite”); 2.函数“update”用来增加x坐标,让子弹右飞行。

6、 新建类“Button”,用来定义“Button”类的基本属性及初始值,和所需要的函数(分析重点代码),代码如下图: 1.注意函数“__init__”调用“self.prep_msg(msg)”,不然后面调用“draw_button”函数时,会找不到对象; 2.函数“prep_msg”用来将msg渲染为图像,并使其在按钮上居中(参数msg必须是字符串); 3.函数“draw_button”用来绘制一个用颜色填充的按钮,再绘制文本(文本在色块的中间)。




