大二下小学期《“python从入门到实践”》,看到外星人入侵小项目那部分兴致大增,遂决定自己也来写一个。
python外星人入侵(游戏开发)
外星人游戏添加飞船上下移动功能:
功能源代码:
以上代码是在game_functions.py里监听键盘的点击事件,并且通过check_events响应按键和鼠标事件。
在ship.py中编写飞船初始位置以及移动标志调整飞船的位置核心函数:
然后在主文件alien_invation.py的游戏主循环中调用:
1.2
为游戏添加背景音效、爆炸音效和射击音效:
新建一个文件夹,再在主文件alien_invation.py的run_game()中调用。
1.3
在玩家得分、最高得分、玩家等级前添加"Score"、"High Score"、"Level"三个标签:(通过数字向字符串类型的转化,显示在图形化界面上)
功能源代码:
将得分转换为一幅渲染的图像,将得分放在屏幕右上角;
字符串定位到:中:中添加high_score,score,level的实际值,
将等级放在得分下方:
1.4
添加游戏暂停功能,如按某个按键,实现游戏暂停:
功能源代码:
在主文件alien_invasion.py中创建暂停按钮:
初始化pause按钮,
通过对鼠标移动坐标(x,y)点击事件的监听实现游戏的暂停。
1.5
最高得分永久性存储,再打开游戏时,仍然可以正常读取和显示;
功能源代码:
创建一个high.json文件,在 game_stats.py中使用json实现最高得分的保存显示。
1.6
仅当游戏结束时,才进行游戏最高得分的比较和更新;
1.7
添加了一个用于开始游戏的play按钮,在玩家三次未击中目标时结束游戏并重新显示Play按钮,让玩家能够通过单击该按钮重新开始游戏;
功能源代码:
主文件alien_invasion.py中创建play按钮,在button类中初始化
check_play_button监听play按钮是否被点击事件,从而重新开始游戏
1.8
在外星人队列中固定关卡插入高级外星人(图像与普通外星人不同,但points更高,速度更快),并且boos显示血条。
功能源代码:
同时模仿bullet类编写BossBullet类:
在game_functions文件中写关卡boos对象流事件
项目资源下载地址:https://download.csdn.net/download/h471507602/11228787
作者邮箱:471507602@qq.com