自从 PHP 大张旗鼓宣称其为世界上最好的编程语言后,世界各路编程语言群起讨伐,战火一直蔓延到21世纪中叶。战争有时候并不总是带来灾难的,甚至还会促进世界大融合、经济大发展、社会大进步,俗话说“乱世出英雄”,在这样一个战火不休的乱世之中,有个叫 Python 的英杰在人工智能、大数据、深度学习等各路具有先进思想之人的拥护下一夜崛起,成为了当下不可超越的世界霸主。而那些也曾是世界列强的PHP、Java、C++、C#等岂能善罢甘休?于是,一场平定暴乱、巩固 Python 霸权地位、维护世界和平的大战即将拉开序幕……
启动游戏,在主界面上显示操作帮助和功能菜单,你可以使用 [w]/↑ 和 [S]/↓ 按键选择菜单,然后按下 [SPACE] 键以进入菜单。
开始游戏后,你会来到一个叫做 “代码废墟” 的战场。你可以通过 [A]/← 和 [D]/→ 按键控制 Python 战机移动,通过 [SPACE] 按键控制 Python 战机发射蟒蛇炮弹。你要尽可能多的消灭敌方战机,这样你会有更多的得分。
你应该时刻注意其他战机对你发射的枪林弹雨,被击中后你会丧失一颗能量心,你总共会有五颗能量心,当你能量心全部消耗殆尽会,你的战机会毁灭,然后就 Game Over 了。另外,你的战机如果被敌机撞到,它将会立即毁灭。
战争无情,战火不断,祝你好运!
你一定很好奇这个游戏是怎么开发的吧?这其实不会很难,我在写这个游戏时,总共也才用了一千多行代码而已。下面让我来告诉你这个游戏的整个开发过程吧!
开发环境:
工具软件:
安装 Python 包:
pip install pygame
准备素材:
游戏规则设定:
游戏界面设定:
游戏流程设定:
对于音效素材,可以在音效素材网站下载,例如 爱给网,也可以自行录制剪辑。对于背景音乐,可支持ogg、mp3等格式;对于音效,可以是ogg、wav等格式。
对于字体素材,可以在字体素材网站下载。
对于图像图标素材,可以在图库网站下载,例如 iconfont,也可以使用 PhotoShop 自己绘制。图像尽量使用具有透明通道的 png 格式文件。
为了使游戏开发更加简单和高效,这里采用高度面向对象思想,将游戏中的每一个用例均对象化;同时,为了使游戏更具有可维护性和可升级性,游戏中的一切配置信息均独立写在配置文件中,只需通过修改配置文件,即可完成对游戏的配置和改造。
项目文件结构:
该项目将每一个类独立写成一个 py 文件,其中包含我方战机的 Hero
类、敌方战机的 Enemy
类、炮弹的 Bullet
类、游戏(战场)类 Game
,另外 main.py
为主程序入口,config.py
为游戏全局配置文件。
游戏配置文件: 该文件(
config.py
)定义了游戏中的一些相关配置、素材文件路径等:
主程序入口: 在
main.py
文件中,首先导入配置文件对象和游戏对象,然后实例化一个游戏对象,接着是运行游戏:
游戏(战场)类: 在这个类文件(
game.py
)里,做了一些游戏的初始化工作,例如定义游戏属性、设定游戏状态等。另外菜单按钮的生成、事件监听、战场布置、战机创建等均在此类中定义:
我方战机类: 在这个类(
hero.py
)里,定义了我方战机的所有属性和方法:
敌方战机类: 这个类(
enemy.py
)里,定义了敌方战机的所有属性和方法:
炮弹类: 在这个类(
bullet.py
)里,定义了炮弹的属性和方法,该炮弹类适用于我方战机和敌方战机:
项目完整代码已上传至 GitHub:https://github.com/YowFung/CodeWarGame,可点击文后【阅读原文】查看源代码,另外,也可以在 GitHub 的 release 处下载已发布的可执行程序。