摘要功能:利用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

VS2013

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实现的全民飞机大战游戏相关推荐

  1. 用c语言写扫雷游戏倒计时代码,课内资源 - 基于VS2013实现的扫雷小游戏

    1.任务概述 1.1 系统总体目标 本项目的目的在于开发一个扫雷软件,该软件面向游戏玩家用户,具有进行扫雷游戏的功能.游戏玩家将使用系统中的如下功能: 进行游戏 使用自定义游戏规格功能 使用计时器功能 ...

  2. 基于linux的qt五子棋小游戏下载,课内资源 - 基于Qt的图形化界面网络在线对战五子棋游戏...

    一 需求分析 本软件是一款跨平台的网络实时五子棋对战软件,实现建立主机和连接主机.实时对战.判断输赢和危险提示等功能.支持Windows . Linux和OSX平台. 程序主要功能如下: 建立服务器 ...

  3. c语言实现一元多项式的除法,课内资源 - 基于C++的一元多项式的计算

    1 问题描述 将多个多项式输入并存储在内存中,然后对多项式进行加.减运算并输出结果. 2 数据结构描述一元多项式的表示方式:如 f=6x^5-7x^4+3 表示为 f=6,5 -7,4 3,0 每个多 ...

  4. devccp中c语言输入二维数组,课内资源

    1 概述1.1 项目简介本次实训项目是做一个飞机大战的游戏,应用MFC编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是MFC编程中的一些函数.链表思 ...

  5. 怎么用java做全民飞机大战_基于VC++和OpenCV实现的全民飞机大战游戏

    摘要 功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌 ...

  6. [源码和文档分享]基于VC++和OpenCV实现的全民飞机大战游戏

    摘要 功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌 ...

  7. 基于linux下QT象棋,课内资源 - 基于QT实现的网络象棋游戏

    1.功能说明 1.1 初始界面 初始界面中包含一个菜单栏,菜单栏中有一个建立连接选项,可以用来与其他程序建立连接. 1.2 建立连接 单击建立连接后,会弹出一个对话框以配置连接的相关信息,包括创建服务 ...

  8. 4维俄罗斯方块 java,课内资源 - 基于Easyx插件的俄罗斯方块游戏的设计与实现

    一 需求分析 1.1 设计内容: 设计一个俄罗斯方块游戏,根据实际游戏的规则完成设计. 游戏设计方案: 在一个图形绘制区域的正上方随机产生四种不同方块中的任意一种的初始位置,并使其向下运动 定义键盘, ...

  9. python迷宫小游戏代码_课内资源 - 基于python实现的迷宫游戏

    一.项目概述与编译环境 本次大作业选题为题目2,即小兔子找胡萝卜的迷宫问题,最终完成开发的游戏名为Caveman and Treasure(穴居人寻宝),游戏整体界面如下: 该项目在windows下编 ...

最新文章

  1. linux ngxtop安装安装及使用
  2. 古巴雪茄高希霸世纪1.2.3.4.5.6.半世纪7款雪茄的区别?
  3. php 验证qq密码错误,QQ输入正确密码却验证错误的解决办法
  4. springboot-vue简单小项目搭建
  5. Android开发之自定义view绘制坐标位置出错的问题解决
  6. git上传大于100M的文件
  7. C++ 学习笔记---零散的基础知识
  8. todo项目开发_Facebook的TODO项目,巴西的Coursera,Drupal等
  9. excel的操作中,需要将特定的符号(如逗号)全部替换成软回车
  10. eclipse中提示“java application configureation name i”
  11. Selenium自动化测试WebDriver下载
  12. 关于MJ刷新的报Too many arguments to function call, expected 0, have *问题
  13. JEECG框架的dictSelect下拉
  14. 如何获取区块链开发视频教程资料
  15. RAR解压、压缩命令
  16. 小马智行将在北京开启公共道路无人驾驶测试
  17. 【实用】齐齐哈尔市公交车线路站点汇总
  18. 电大2019秋c语言程序设计,中央电大秋C语言程序设计A试题
  19. 【懒懒的Python学习笔记四】
  20. [原创] Bandwagon 追加 swap 大小

热门文章

  1. 四川农业大学计算机专业答辩,四川农业大学远程教育2016年下半年本科论文答辩安排及注意事项...
  2. NodeJs实战-Express构建照片存储网站(2)-上传、展示文件
  3. php开发微信群机器人,[极客开发]WechatRobot - PHP微信机器人开发包
  4. 【小白学爬虫连载(1)】-爬虫框架简介
  5. 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 1
  6. 苦难并不可怕......
  7. 【Linux基础指令】
  8. linux查看cpupower模式,CPU优化建议使用cpupower设置CPU Performance模式
  9. 2022R2移动式压力容器充装考试题及在线模拟考试
  10. 9针RS232C串口故障检测