——《项目实践》课实验报告——
基于 Python 的飞机大战游戏开发
班级:2018 级计科网工班
专业:网络工程
姓名:曹蕾
学号:0181120290
指导教师:马明
二〇二〇年八月二十二日
目 录
摘 要 ............................................................. 3
一、绪论 ........................................................... 3
二、理论基础 ....................................................... 4
三、系统设计 ....................................................... 5
四、系统实现 ....................................................... 7
五、实验 .......................................................... 11
六、结论 .......................................................... 12
七、参考文献 ...................................................... 12
基于 Python 的飞机大战游戏开发
摘 要
随着计算机领域的飞速发展,以游戏为代表的电子娱乐正成为主流娱乐方式。电子
游戏凭借自身的优势,不但占领着较大的游戏市场,还引领着新一轮的潮流带给人们欢
乐。本文设计了一个基于 python 开发的电子游戏——飞机大战,该项目通过 python 中
的 pygame 库来设计游戏的前后端,利用 pygame 中的控制图像、声音、输入输出的函数
实现游戏功能。文中简单介绍了飞机大战游戏开发的流程,并详细介绍了游戏中各种频
率的更改设置、游戏动画形成以及游戏背景的切换。通过各种优化调整,实现了游戏中
难度升级、背景音效、排行重玩等功能,丰富了游戏体验。
关键词:电子游戏;Python 语言;pygame;飞机大战
一、绪论
1. 研究背景及意义
电子游戏于 1952 年面世,为井字棋游戏,游戏平台是真空管电脑。之后出现的是
发布于 1958 年 10 月 18 日的网球游戏《双人网球》,虽然说是网球游戏,实际上的画
面却比较类似现代的气垫台。1980 末期是电子游戏的转折点,电脑由于得到显卡的强大
支持,开始渐渐崛起;另一大突破是,任天堂推出 Game Boy,打开了便携式游戏机的无
限发展空间。
电子游戏作为一门新生的艺术,具有独立的美学范式和艺术结构。游戏交互设计的
优劣,直接影响着玩家的游戏体验和感性判断。随着游戏技术的发展,游戏市场对游戏
专业的人才需求逐渐扩大。在国家“积极引导、科学治理、提高素养”的方针下,电子
游戏已成为散发积极文化力量与助建新时代美好生活的大众媒介。
2. 国内外发展情况
对于国外,发达国家美国、日本、韩国、英国在游戏专业教育领域的成就非常显著,
这些国家的高校在专业建设、专业设置、专业发展、专业扶持等方面积累了丰富的经验。
他们不仅仅依靠师生的教学和科研能力,也不断寻求外部支持,包括政府的政策引导和
资金支持、企业的技术援助和环境支持等,这使这些国家在游戏业的发展中占据优势。
对于国内,从产业规模来看,今年受疫情影响,我国电子游戏市场销售额有较大增
长;从我国用户规模来看,目前我国电子游戏用户群体已较为固定;从市场份额来看,
我国电子游戏市场中国产游戏仍占据明显主导地位。
3. 小结
近年来不同游戏的发展状况不尽相同,总体看来,小游戏的发展积极健康,越来越
多参与到人们的生活,给人们带来了愉快的休闲时光。飞机大战作为一款电子小游戏,
其主要特征是所占容量小、游戏规则简单和生命周期较短。同时该游戏还具有开发团队
小,以实现休闲娱乐的游戏模式为主,不追求激烈的竞技,可以利用零散时间玩和配置
要求不高等特征。本文简单介绍了飞机大战游戏的流程走向,并详细介绍了游戏中各种
频率的更改设置、游戏动画形成及背景图片的切换环节。
二、理论基础
1. 开发语言 Python 简介
Python 是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计
用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被
用于独立的、大型项目的开发。它是一种解释型脚本语言,可应用于 Web 和 Internet
开发、科学计算和统计、教育、桌面界面开发、软件开发、后端开发等领域。Python
在设计上坚持了清晰划一的风格,这使得 Python 成为一门易读、易维护,并且被大量
用户所欢迎的、用途广泛的语言。
2. 开发工具 PyCharm 简介
PyCharm 是一种 Python IDE,带有一整套可以帮助用户在使用 Python 语言开发时
提高其效率的工具,比如调试、语法高亮、Project 管理、代码跳转、智能提示、自动
完成、单元测试、版本控制。此外,该 IDE 提供了一些高级功能,以用于支持 Django
框架下的专业 Web 开发。
3. Python 内置模块
sys:该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函
数。
random:random 模块用于生成随机数。
codecs:codecs 模块专门用作编码转换。
4.第三方模块
Pygame:Pygame 是 Python 平台下的一款优秀的 2D 游戏开发专用库。
三、系统设计
1. 系统功能结构
飞机大战游戏的系统功能主要是实现不同阶段玩家飞机与敌机的交互、通过文件记录并
保存分数以及排行榜功能。
图 1 系统功能结构图
2. 系统业务流程
(1)用户打开界面,游戏自动开始
(2)用户通过←↑↓→或 AWSD 几个按键来控制玩家飞机上下左右移动,躲避并击打敌
机。每击落一架敌机积分 100 分,满 600 分后自动进入升级模式,游戏难度加大。
(3)当玩家飞机撞上敌机时发生爆炸,游戏结束
(4)在游戏结束后,玩家可以点击查看排行榜成绩或选择重新开始游戏
图 2 系统业务流程图
3. 系统预览
进入游戏得分小于 600 时为初级模式,得分大于等于 600 时为高级模式,游戏的背景、
音乐、难度均做出了改变。
图 3 初级游戏界面
图 4 高级游戏界面
玩家飞机与敌机发生碰撞后游戏结束,显示得分以及排行榜按钮,游戏结束画面和排行
榜页面如下所示。
图 5 游戏结束界面
图 6 排行榜界面
四、系统实现
1. 存储玩家飞机状态图片
设置玩家飞机不同状态的图片列表,通过多张图片的切换形成动画效果。前六张对应玩
家飞机的初级模式,后六张对应高级模式。每个模式的前两张为飞机正常状态,后四张
为飞机爆炸状态。
图 7 飞机图片列表
2.控制子弹发射频率
首先初始化子弹发射参数 shoot_frequency=0,此参数用来控制何时发射一颗子弹。注
意 shoot_frequency 是用来控制子弹发射频率的参数,它既不等于子弹发射频率,也不
等于子弹速度。子弹速度在子弹类 bullet 中已经声明子弹速度为 2。
当 shoot_frequency%15 等于 0 时,飞机发射一颗子弹,同时调用子弹音频,子弹发射
参数加一。Shoot_frequency 虽然增加,但子弹发射频率不变,依旧是每隔 15 发射一颗
子弹。
3.玩家飞机动画效果之初级模式
设定子弹发射参数 shoot_frequency 与玩家飞机图片索引 img_index 的关系为 8:1,例
如当发射参数 0=15 时,就令其重新归零。