python飞机大战设计(论文+程序+源代码)

1、设计概述

在社会经济发展迅速,人们的工作压力越来越来,长时间紧张繁忙的工作压力使人们精神紧绷,为了更好的工作并提高工作效率,这就需要短暂的休息让紧绷的精神放松一下。缓解压力的方式也很多,要选择适合自己的方式,玩游戏也是众多缓解压力方式之一。看电影、电视或者音乐也可以缓解压力,但是人们只是能被动的观看与倾听,并不能参与其中进行互动。而游戏有着很好交互性,玩家并不是仅仅在观看角色在如何移动,而是也要融入角色当中进行操作。在游戏中,玩家的行为也会对游戏产生影响。游戏除了让人娱乐之外还可以作为缓解压力的方式,在休息的时候可以不用想其他事情,这样压力就会得到缓解。个人计算机刚刚开始普及的时候,游戏并不能被广泛接受,最主要的原因就是不能充分发挥个人计算机的性能,游戏程序不能最大化使用 PC 机器的硬件资源, 机器与人的交互做的还不够好。由此导致个人计算机早起游戏画面差,操作感僵硬, 可玩性不高,所以不被人们所接受。但是随着切硅技术的提升导致CPU性能的飞跃,以及 C,C++,Java,Python 等等一系列高级语言的开发,游戏对硬件资源的利用率提 高,现在游戏各方面都有了质的飞跃。从 20 世纪末期暴雪公司下的《星际争霸》《魔兽世界》,再到现如今的《英雄联盟》《守望先锋》等等都给玩家带来极大的乐 趣与良好的游戏体验。当然,除了游戏本身的优秀质量外,可以较广泛的支持不同 硬件设备及操作系统的功能也不容忽视,高中低端的个人计算机都有着不错的流畅度。

2、需求分析

2.1 系统总体分析

整个系统的使用简单易懂,系统采用GUI布局使得界面拥有比较友好的交互,同时本软件是基于 windows 系统的开发的一款娱乐软件,它包含普通玩家与敌机两种类型并且整个系统的运行配置要求也很低,基本运行环境要求:
1.开发工具 Pychame

2.2 游戏设置分析

该软件主要设置背景音乐开关及声音大小,游戏功能:实现飞机移动、发射子弹、多条生命、碰撞检测、敌机血量检测、事件监听、发放补给包等功能以及设置游戏规则。

3、课题及任务功能描述

3.1 课题研究背景

在这个高速发展的时代,人们的工作压力越来越来,长时间紧张繁忙的工作压力使人们精神紧绷,为了更好的工作并提高工作效率,这就需要短暂的休息让紧绷的精神放松一下。缓解压力的方式也很多,要选择适合自己的方式,玩游戏也是众多缓解压力方式之一。看电影、电视或者音乐也可以缓解压力,但是人们只是能被动的观看与倾听,并不能参与其中进行互动。而游戏有着很好交互性,玩家并不是仅仅在观看角色在如何移动,而是也要融入角色当中进行操作。在游戏中,玩家的行为也会对游戏产生影响。游戏除了让人娱乐之外还可以作为缓解压力的方式,在休息的时候可以不用想其他事情,这样压力就会得到缓解。

3.2 功能描述

根据游戏的需求一共分为三个模块,分别是背景音乐模块、游戏设置模块和精灵模块。
1)背景音乐模块的功能主要是添加背景音乐,使游戏的更加灵活增加用户良好的体验感。背景音乐用例图下图所示:

在这里插入图片描述

2)游戏设置模块的功能主要是实现飞机移动、发射子弹、多条生命、碰撞检测、敌机血量检测、事件监听、发放补给包等功能以及设置游戏规则。

在这里插入图片描述

3)精灵模块的功能主要是设置分值奖励,游戏面板恢复和保存成绩,精灵用例图下图所示:

在这里插入图片描述

4、总体设计

4.1 系统总体设计

本次设计的游戏包含了背景音乐模块、游戏设置模块以及精灵模块,然后根据背景音乐模块、游戏设置模块以及精灵模块这三个模块的功能分析,主要由以下几个功能:
在这里插入图片描述
背景音乐模块包括:添加背景音乐,使游戏的更加灵活增加用户良好的体验感教游戏设置模块包括:实现飞机移动、发射子弹、多条生命、碰撞检测、敌机血量检测、事件监听、发放补给包等功能以及设置游戏规则。
精灵模块包括:设置分值奖励,游戏面板恢复和保存成绩。

4.2 详细设计

4.2.1 背景设置

整个游戏窗口显示的是一张以星空图片(background.png)为背景的动态图像,当用户启动游戏时,背景图缓缓向下移动,给用户一种自己操作的飞机向上移动的错觉。

4.2.2 界面设置

1)游戏窗口中间靠下的位置显示自己的飞机,也就是我们自己操作的飞机(上下左右键),可以发射子弹、引爆炸弹以及夺取补给。
2)游戏窗口右下角显示×3,用来指示自己飞机的生命,当每夺取蓝色空投包时,增加一条生命,如果生命值不足时则显示0,初始状态下玩家有三条生命。
3)游戏窗口左下角显示×3,用来指示自己所拥有的炸弹数量,当每夺取红色空投包时,增加一个炸弹,按下B键可以时整个窗口内的所有敌机爆炸,如果炸弹数量不足时则显示0,初始状态下玩家携带3个炸弹。
4)游戏窗口左上角有一个开始暂停键,用于控制游戏的状态,同时在暂停键旁边有设置一个显示玩家的分数。当玩家按下空格键,游戏暂停,整个画面处于静止状态同时背景音乐也暂停,当玩家再次按下空格键时,游戏从当前状态启动,继续游戏。
5)当玩家生命值用尽时,界面中央就会显示“Game Over”的文字。Game Over下面会显示用户的最该分数的最高得分,玩家可以对比左上角的得分查看自己当前的得分以及是否打破记录。

4.2.3 玩家飞机设置

1)飞机控制:玩家可以通过键盘上的方向键(↑↓← →)控制飞机的方向。当游戏开始的前3秒之内,玩家处于无敌状态,即在这三秒之内任何敌机都不会撞毁自己。
2)玩家飞机出场后,每个0.2秒就会自动连续发射3颗子弹,当获取道具后会变成两行子弹。
3)玩家飞机的属性可以总结为如下表所示:
在这里插入图片描述
4)子弹的属性可以总结为如下表所示:
在这里插入图片描述

4…2.4 敌机设置

 1)在这个飞机大战中敌机一共分3种类型,分别是小型敌机、中型敌机和大型敌机,并且击中每种飞机的分值也不同。

2)游戏开始后,敌机可以从任意位置出现,如果飞行途中遇玩家的飞机相撞,就播放撞毁音效,同时敌机毁坏,玩家飞机丧失一条生命。
3)如果敌机飞机和玩家飞机没有相撞,而是被玩家飞机击中,则敌机的生命值减去相应的子弹伤害。如果敌机生命值还有,显示被击中图片但是可以继续向前飞行。如果敌机的生命值没有了就显示被击毁的音效和图片。具体属性如下表所示:
在这里插入图片描述

4.2.5 关卡设置

该游戏根据玩家的得分逐步增加难度,一共设立三个关卡,增加玩家的体验。具体设置如下表所示:
在这里插入图片描述

4.2.6 奖励设置

玩家飞机每得到100000分会被奖励1条生命,并且每个30秒会开始释放道具,具体如下表所示:
在这里插入图片描述
以上就是游戏的基本设置,具体实现效果,如图所示:
在这里插入图片描述

5、功能实现

5.1 启动

整个游戏窗口显示的是一张以星空为背景的动态图像,当用户启动游戏时,背景图缓缓向下移动,给用户一种自己操作的飞机向上移动的错觉。如图所示:
在这里插入图片描述
当用户点击开始游戏时,系统会自动调用Game类,通过self.create_enemies()方法开始创建敌机,self.hero = Hero(self.all_group)方法创建玩家的飞机,同时也会通过self.create_supplies()
创建道具,以及通过self.hud_panel.show_bomb(self.hero.bomb_count)创建炸弹的数量,以及其他初始化操作,具体代码如下:


#核心代码
self.all_group = pygame.sprite.Group()          # 所有精灵组
    self.enemies_group = pygame.sprite.Group()      # 敌机精灵组
    self.supplies_group = pygame.sprite.Group()     # 道具精灵组
    # 4. 创建精灵
    # 背景精灵,交替滚动
    self.all_group.add(Background(False), Background(True))
    # 指示器面板
    self.hud_panel = HUDPanel(self.all_group)
    # 创建敌机
    self.create_enemies()
    # 英雄精灵
    self.hero = Hero(self.all_group)
    # 设置面板中炸弹数量
    self.hud_panel.show_bomb(self.hero.bomb_count)
    # 创建道具
    self.create_supplies()
    # 5. 创建音乐播放器
    self.player = MusicPlayer("game_music.ogg")
    self.player.play_music()
def create_supplies(<
  • 17
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值