推荐星级:
- 1
- 2
- 3
- 4
- 5
基于Python的飞机大战游戏设计
资料介绍
基于Python软件的面向对象编程思想设计飞机大战游戏,玩家操作飞机发射子弹,通过左右移动来躲避子弹;敌机位于屏幕顶部左右匀速移动,并且随机向玩家飞机发射子弹。实践表明,该游戏操作简单灵活,具有趣味性。
部分文件列表
文件名 | 大小 |
基于Python的飞机大战游戏设计.pdf | 2M |
部分页面预览
(完整内容请下载后查看)23
1
期
第
卷 第
Vol. 23 No. 1
Mar. 2019
扬 州 职 业 大 学 学 报
Journal of Yangzhou Polytechnic College
2019
3
月
年
Python
基于
的飞机大战游戏设计
瞿
苏
(
,
江苏旅游职业学院 江苏 扬州
225000)
:
要 基于
Python , ,
软件的面向对象编程思想设计飞机大战游戏 玩家操作飞机发射子弹 通过左右移
摘
; , 。 ,
动来躲避子弹 敌机位于屏幕顶部左右匀速移动 并且随机向玩家飞机发射子弹 实践表明 该游戏操作简单
,
灵活 具有趣味性
。
: Python;
; Pygame
关键词
中图分类号
飞机大战游戏
: TP 311. 52
: A
: 1008 - 3693( 2019) 01 - 0035 - 05
文章编号
文献标识码
Design of Aircraft War Game Based on Python
Qu Su
( Tourism Voacational College of Jiangsu,Yangzhou 225000,China)
Abstract: This paper introduces the design of aircraft war game based on Python object-oriented programming.
Operating the aircraft,players can fire bullets,can move left and right to avoid bullets,while the enemy air-
craft at the top of the screen moves from left to right at a constant speed and randomly shoots players. Practice
shows that the game is simple and flexible with great fun.
Key words: Python; aircraft war game; Pygame
Python
应用场景涉及到
、
,
是一种开源的简单易学的高级语言
1
飞机大战游戏总体设计
Web
、
应用开发 操作系统管理
、
。
1. 1
科学计算 游戏等领域 飞机大战是一款飞行射
总体设计原则
主要设计原则如下
,
击类游戏 游戏方法是玩家操作飞机与敌机在空
: ( 1)
。
简单性 在实现软
。
中战斗 本文主要介绍用
Python
,
; ( 2)
软件实现飞机
件的功能的同时 尽量让软件操作简单易懂
Python ,
软件 实现飞机大战游戏的
。
。
大战游戏
针对性 基于
; ( 3) 。 、
各种要求 一致性 类型 变量和其他元素的
;
命名规则保持一致 完成同样的功能应该尽量使
,
游戏的整个界面是一张背景图片 游戏中用
,
到的其他角色同样都对应着相应的图片 这些图
[1]
Pygame
。
; 、
用同样的元素 界面元素的外观风格 摆放位置在
片需要借助
模块搭载窗口以显示
在
, 。 ,
窗口中 对象显示的位置通过坐标标注 其中 窗
。
同一个界面和不同界面之间是一致的
( 0,0) ,x
1. 2
口的左上角坐标为
轴向右延伸坐标数值
系统总体设计
,y 。
增大 轴向下延伸坐标数值增大 所有的游戏
,
系统中只有玩家一种用户 不必进行身份验
,
元素都参考这个坐标系 对象在窗口的移动就是
。
证等操作 玩家点击应用图标直接进入开始界
。
。 : 、
整个游戏的操作包括 显示玩家飞机 控制移
坐标位置的变化
面
: 2018 - 10 - 28
收稿日期
:
作者简介 瞿
( 1982—) , , , 。
女 江苏旅游职业学院旅游信息学院副教授 硕士
苏
23
卷
扬州职业大学学报
第
36
; ( ) ;
动方向 显示玩家发射子弹 子弹移动 显示敌
。 ,
幕上设定的位置 玩家飞机左右移动功能 可以
,
、
。
x ,
通过改变坐标 的值实现 飞机向左移动减小坐
人飞机 控制敌人飞机移动 敌人飞机发射子弹
1. 3
1. 3. 1
pygame
x
, x
的值 反之则增大 的值
。
准备工作
pygame
标
Python File,
“plane”.
在
添加
是一套用来开发游戏的
Python
模块
新建 一 个
plane. py
取 名 为
Python
,
,
文件中 导入
pygame
,
模块 之后定义一
模块
程序中创建功能丰富的游
。PyCharm Python
HeroPlane。
该模块允许在
戏和多媒体程序
,
个表示玩家飞机的类
作为一款开发
,
程序 设 计 中 定 义 为
display、move left
-
和
的编辑器 它不仅可以帮助开发人员提高开发效
move right
-
。
三种方法 其中
,display
用于在默认
,
率 而且包含了像
pygame
这样功能丰富的第三方
; moveleft
的位置显示玩家飞机
; moveright
用于让飞机向左移
start
。
模块
。
动
用于让飞机向右移动
在
函数
PyCharm
pygame ,
模块 在程序中导
在
中添加
,
中创建飞机对象 并且显示到窗口中
。
在
while
pygame
, ,
模块进行测试 编译器编译通过 就证
入
true
,
语句中 根据玩家按下的按键来调用相应的
。
明成功导入了模块
,
方法 以控制飞机移动的方向
。
1. 3. 2
搭建游戏界面
“ ” “A” ,
当按 键或者 键时 控制玩家的飞机
←
飞机大战游戏的整个场景都需要一个窗口作
, “ ” “D” ,
向左移动 当按 或者 键时 控制玩家的
→
, 。
为载体 展示游戏中的画面 为了让整个游戏的
。
飞机向右移动
,
角色和背景的风格统一 准备了一张背景图片
。
2. 2
2. 2. 1
玩家飞机发射子弹
,
在开发中 导入
pygame
,
模块 就能直接调用模块
显示子弹
。
中的方法
,
当按空格键时 代表玩家飞机要发射一枚子
1. 3. 3
检查键盘的输入
,
弹 此时需要在玩家飞机的头部位置生成一颗子
,
当敌人飞机发射子弹的时候 玩家飞机需要
。 ,
弹对象 飞机左右移动到任意位置 只要按空格
,
使用键盘适时地调整位置 以躲避子弹的攻击
。
,
键 子弹生成的初始位置永远会位于玩家飞机的
Python
, 、
程序中 移动鼠标 敲击键盘等人机交
在
。
头部
,
互的动作属于事件 它交由
pygame event
的
模块
Python File, “bullet”。 bul-
取名 在
新建一个
let. py
。event
,
模块采用列表形式存储的事件
进行控制
, ,
文件中 导入模块 之后定义一个表示子弹
get
。
函数来获取 如果要获取键盘和鼠
可以通过
标产生的事件 就使用
event. type(
。
的类 代码如下
:
,
for
,
class Bullet( object) :
循环遍历事件列表 取
def init ( self,x,y,screen) :
-
-
)
事件的类型 进行对
出每个事件与
self. x = x + 40
。
event. type
Quit,
说明用户使用
比
如果
的值为
self. y = y - 20
,
鼠标点击了窗口右上角的关闭按钮 此时就要退
self. screen = screen
self. iamge = pygame. image. load( “. /feiji/bullet - 3.
;
出程序 如果
event. type
Keydown,
的值为 说明用
gif”) . convert( )
def. display( self) :
self. screen. blit( self. iamge,( self. x,self. y) )
,
户使用了键盘 此时就要明确按下的是哪个键
。
while
,
循环中 已经显示了游戏的背景图
在
。
, ,
这时 在程序中需要检测是否有事件发生 比
片
,
按空格键发射子弹 代码如下
:
heroPlane. launch bullet( )
-
。 ,
如按下键盘等 如果没有事件发生 就执行更新
, ,
运行程序 按下空格键以后 玩家飞机的头部
, ,
操作 如果有事件发生 就先处理键盘事件以后再
。 ,
显示了待发射的子弹 此时 无论飞机移动到哪
。
更新
,
。
个位置 生成的新的子弹永远会位于其顶部
2. 2. 2
每执行一次
2
飞机大战游戏功能实现
子弹移动
while
,
dis-
2. 1
,
显示玩家飞机 控制移动方向
循环 就会调用一次
,
在窗口中要显示玩家飞机 可以根据玩家飞
play
, 。
方法 让子弹再次显示到屏幕上 由于屏幕
,
机图片的名称创建图像 再把这些图像显示到屏
, 。
刷新的速度特别快 肉眼是无法捕捉到的 利用
全部评论(0)