失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言全民飞机游戏代码 课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏

c语言全民飞机游戏代码 课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏

时间:2020-09-26 07:03:12

相关推荐

c语言全民飞机游戏代码 课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏

摘要功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能;提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式;一般模式中用户通过控制玩家飞机攻击敌方飞机获得分数以及奖励,打死boss飞机后可进入下一关,难度一次增加;玩家也可捡取道具,获得生命值,变换飞机形态。无尽模式中玩家通过躲避炸弹,捡取星星获得奖励,随时间推移,炸弹移动速度加快。玩家飞机阵亡后会显示自己分数,及排行榜

核心算法:游戏主控制算法、图片绘制算法、飞机移动算法、导弹追踪算法

优点:有较为清楚的软件运行流程,用户可以登录注册,保存数据,还有两种模式可供用户选择,敌方导弹还有追踪功能

不足:没有图形化的登录界面,画面感不强,游戏过程中道具种类较少,没有加入鼠标操作

一、项目概述

1.1 项目简介

全民飞机大战,是一款经典的游戏。本软件,首先用户若有账号可以直接登录,若没有可以直接注册,然后登录。登陆成功进入菜单界面,选择模式,进入游戏。游戏中用户通过消灭敌方飞机获得分数,敌方飞机毁灭会爆出奖励,吃到奖励也可以加分,同时还有道具,飞机一共有三种形态,根据捡到道具个数,飞机依次变换形态。在击毁一定数量敌机后,会出现boos飞机,击毁boss飞机后会进入下一关卡,关卡难度依次递增。在通关或我方飞机阵亡时,会出现排行榜,记录当前获得分数,和排名。此软件还有无尽模式,飞机通过捡取奖励星星获得分数,若被障碍物炸弹击中会耗损生命值,根据时间推移,障碍物会移动越来越快,增加游戏难度。直到我方飞机阵亡,而后也会出现排行榜。此外游戏还设有音乐,按键等一些操作。

1.2 功能要求编号

功能模块

输入描述

操作步骤

输出描述

1

开始系统

程序已经运行

系统开始

2

登录

程序已经进行

按 1键

开始登陆

3

注册

程序已经进行

按 2 键

开始注册

4

菜单界面

程序已经运行

通过按键

选择模式

5

无尽模式

程序已经运行

按Enter 键进入

开始游戏

6

一般模式

程序已经运行

按Enter 键进入

开始游戏

7

退出游戏

程序已经运行

按Enter 键进入

退出游戏

8

飞机上移

程序已经运行

按W键

飞机向上移动

9

飞机下移

程序已经运行

按S键

飞机向下移动

10

飞机左移

程序已经运行

按A键

飞机向左移动

11

飞机右移

程序已经运行

按D键

飞机向右移动

12

攻击

程序已经进行

按J键

我方飞机发出子弹,不同飞机子弹类型不同

13

消灭

程序已经进行

玩家子弹与敌方飞机碰撞

敌方飞机销毁,爆出奖励

14

消灭

程序已经运行

敌方子弹与玩家飞机碰撞

玩家飞机掉血,直到被击毁,游戏结束

15

碰撞1

程序已经运行

敌方飞机与玩家飞机碰撞

敌方飞机与玩家飞机都失血

16

计分

程序已经运行

击毁不同飞机,得到分数不同

17

碰撞2

程序已经运行

玩家飞机与奖励星星碰撞

得到分数奖励

18

碰撞3

程序已经运行

玩家飞机与炸弹碰撞

玩家飞机失血

19

排行榜

程序已经运行,游戏结束

显示当前分数,与排名

20

重玩游戏

程序已经运行,游戏结束

按Enter键

进入菜单选项

21

退出游戏

程序已经运行,游戏结束

按ESC键

退出游戏

二、总体设计

2.1 类关系图

2.2 结构关系图

简要说明:plane为飞机基类,mplane, Enemyplane, EnemyFightplane, EnemyBossplane分别为派生的子类,这样封装可以任意增加子类,删除子类,子类可以从基类继承方法,还可以对某些方法进行多态继承,子类统一使用同一接口,而自己在类中实现自己特有的方法。

2.3 设计类图(所有类图)

三、核心算法

3.1 游戏总控算法

该算法完成控制整个游戏进程的功能,判断游戏进行状态,对角色道具进行更新,该算法主要是通过CManager类中的Run函数进行控制,对枚举变量m_state进行判断达到控制开始,运行,结束界面。当m_state=0时,进入开始界面;m_state=1时,进入运行界面;m_state=2时,进入结束界面。流程图如下:

算法对应实现函数:CManager类下的Run函数。

3.2 导弹追踪

该算法是Cbullet类下的Move,Angle函数,该两个函数用于敌方导弹追踪我方飞机,该算法先利用子弹,飞机的坐标,利用反三角函数算出角度,再利用三角函数sin,cos算出x,y方向的分速度,再进行子弹移动。流程图如下:

算法对应实现函数:CBullet类下的Move,Angle函数。

四、程序实现

4.1 开发平台与编译运行要求硬件配置

版本

Windows操作系统

Windows 10

Microsoft Visual studio

VS

OpenCV

2.4.11

4.2 核心功能分析

登录注册

开始界面—菜单栏

运行界面 – 无尽模式 – 一般模式

结束界面: 实现分数显示,排行榜

导弹追踪:玩家旁边的两枚导弹为追踪弹

存储功能 – 用户注册

存储功能 – 得分存储

4.3 功能完成度编号

功能模块

完成情况描述

完成度

1

开始系统

出现登录,注册选择界面

100%

2

登录

登录成功,出现开始界面菜单

100%

3

注册

注册成功,出现登录界面

100%

4

菜单界面

出现菜单界面

100%

5

无尽模式

进入无尽模式

100%

6

一般模式

进入一般模式

100%

7

退出游戏

退出游戏

100%

8

飞机上移

飞机向上移动

100%

9

飞机下移

飞机向下移动

100%

10

飞机左移

飞机向左移动

100%

11

飞机右移

飞机向右移动

100%

12

攻击

子弹从飞机炮口发出

100%

13

消灭

敌方飞机消失,出现爆炸特效并且出现爆炸奖励

100%

14

消灭

玩家飞机掉血

100%

15

碰撞1

玩家飞机,敌方飞机都掉血

100%

16

计分

分数增加

100%

17

碰撞2

得分增加

100%

18

碰撞3

血量减少

100%

19

排行榜

显示当前分数与排行

100%

20

重玩游戏

游戏重新回到开始菜单界面

100%

21

退出游戏

退出游戏

100%

五、总结

终于完成了该项目——全民飞机大战,在结束时,也对自己的游戏总结了一下,有些优点,也有些不足之出。优点:有较为清楚的软件运行流程,用户可以登录注册,保存数据,还有两种模式可供用户选择,敌方导弹还有追踪功能。不足:没有图形化的登录界面,画面感不强,游戏过程中道具种类较少,没有加入鼠标操作。完成此项目,自己收获也有很多,能够清楚地了解到制作一个软件所必要的流程,类的使用,继承,多态也有很好的了解,能够明白什么时候使用继承,什么方法有必要使用多态。虽然这些还不能熟练的使用,但是我会努力的学习使用它。

如果觉得《c语言全民飞机游戏代码 课内资源 - 基于VC++和OpenCV实现的全民飞机大战游戏》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。