前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【粤嵌实训】Python小游戏开发之“代码大战”

【粤嵌实训】Python小游戏开发之“代码大战”

作者头像
悠风
发布2019-08-28 16:24:12
1.5K0
发布2019-08-28 16:24:12
举报

自从 PHP 大张旗鼓宣称其为世界上最好的编程语言后,世界各路编程语言群起讨伐,战火一直蔓延到21世纪中叶。战争有时候并不总是带来灾难的,甚至还会促进世界大融合、经济大发展、社会大进步,俗话说“乱世出英雄”,在这样一个战火不休的乱世之中,有个叫 Python 的英杰在人工智能、大数据、深度学习等各路具有先进思想之人的拥护下一夜崛起,成为了当下不可超越的世界霸主。而那些也曾是世界列强的PHP、Java、C++、C#等岂能善罢甘休?于是,一场平定暴乱、巩固 Python 霸权地位、维护世界和平的大战即将拉开序幕……

玩家说明

启动游戏,在主界面上显示操作帮助和功能菜单,你可以使用 [w]/↑ 和 [S]/↓ 按键选择菜单,然后按下 [SPACE] 键以进入菜单。

开始游戏后,你会来到一个叫做 “代码废墟” 的战场。你可以通过 [A]/← 和 [D]/→ 按键控制 Python 战机移动,通过 [SPACE] 按键控制 Python 战机发射蟒蛇炮弹。你要尽可能多的消灭敌方战机,这样你会有更多的得分。

你应该时刻注意其他战机对你发射的枪林弹雨,被击中后你会丧失一颗能量心,你总共会有五颗能量心,当你能量心全部消耗殆尽会,你的战机会毁灭,然后就 Game Over 了。另外,你的战机如果被敌机撞到,它将会立即毁灭。

战争无情,战火不断,祝你好运!

游戏开发

你一定很好奇这个游戏是怎么开发的吧?这其实不会很难,我在写这个游戏时,总共也才用了一千多行代码而已。下面让我来告诉你这个游戏的整个开发过程吧!

准备工作

开发环境:

  • Windows 10
  • python 3.7

工具软件:

  • PhotoShop CC
  • Sublime Text 3
  • GitBash
  • pip19.1.3

安装 Python 包:

  • pip install pygame

准备素材:

  • 音效素材:包括背景音乐、菜单选择音效、子弹发射音效、爆炸音效等。
  • 图像素材:包括游戏背景图、战机图像、子弹图像、爆炸效果图、菜单按钮图等。
  • 字体素材:用于让界面上的文字显示得更好看点。
游戏设计思路

游戏规则设定:

  • 我方战机(Python战机)通过发射子弹来消灭众多的敌方战机(C++战机、Java战机、C#战机、JavaScript战机、PHP战机、GO战机等);
  • 敌方战机也可以发射子弹攻击我方战机;
  • 我方被攻击后会损失血量,血量为零时则爆炸阵亡;
  • 被敌方撞击后,我方也会爆炸阵亡;
  • 敌方战机可以被一次性击毁;
  • 敌方战机从远处飞往我方战机,只能直线飞行,我方战机可以移动位置;
  • 每消灭一个敌方战机,则得50分;
  • 我方战机阵亡则游戏结束。

游戏界面设定:

  • 暗色主题;
  • 矩形窗口,竖屏显示;
  • 重要信息突出;
  • 不同战机区分明显。

游戏流程设定:

  • 启动游戏后播放背景音乐,显示功能菜单;
  • 通过功能菜单选择开始游戏或退出游戏;
  • 选中开始游戏后,出现 Ready, Go 提示界面,然后正式开始游戏;
  • 正式开始游戏,播放游戏背景音乐,加载游戏地图,显示我方战机,随机出现敌方战机;
  • 游戏中显示我方战机血量和得分情况,如若血量为零,则游戏结束;
  • 游戏结束,显示得分情况,显示 Game Over 界面,出现功能菜单,可选择继续游戏或退出游戏。
游戏素材采集和制备

对于音效素材,可以在音效素材网站下载,例如 爱给网,也可以自行录制剪辑。对于背景音乐,可支持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 处下载已发布的可执行程序。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 悠风的采坑日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 玩家说明
  • 游戏开发
    • 准备工作
      • 游戏设计思路
        • 游戏素材采集和制备
          • 游戏程序设计
          • 后语
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档