战机太空战机实验报告

雷霆战机boss模式  时间:2021-02-13  阅读:()

太空战机实验报告

1.实验截图

图一开始游戏

图二我方战机敌方战机出现。敌方战机随机发射子弹并上下浮动背景音乐响起。

图三射杀战机积分增加。敌机与子弹碰撞消失。

图四被敌机射杀血量减少为0

2.游戏功能

游戏规则

1. 按下空格键游戏开始。

2. 通过WSA 键控制玩家飞机移动上下左右移动但不能飞出边境。

3. 当玩家按下空格键时玩家飞机发射子弹。

4. 玩家飞机被敌机碰到后生命值会减少生命值变为 0的时候游戏结束。

5. 在游戏右方会一直出现电脑飞机敌机 敌机分为超大、大、中、小四种类型越大的飞机出现的几率越小。

6. 敌机被玩家飞机击中后生命值会减少生命值变为 0时该敌

机被摧毁玩家得分。越大的飞机越难击毁击毁后玩家得分也越多。

7. 敌机飞到界面左方时删除敌机。

8. 敌方飞机的子弹分为两种一种为普通子弹另一种子弹为高级子

弹 当敌方飞机的普通子弹与玩家飞机的子弹碰撞时相互抵消 

敌方飞机的高级子弹不会与玩家飞机的子弹抵消

9. 在界面外用一个文本显示玩家游戏得分。

3.流程图

4.数据结构

创建5个继承类我方战机类CMyFighter、子弹类CBullet、敌方战机类CEnemyFighter类、链表类CSpriteList、精灵父类CGameSprite。

1.我方战机类CMyFi ghter:m_fVelocityLeft; //控制飞机飞行的速度上下左右。m_fVel o c ityRi ght;m_fVel ocityUp;m_fVelocityDow n;

m_bCa nFire; //表示判断是否开火

2.子弹类CBullet:

; //表

示该子弹是谁发射的变量

3.敌方战机类CEnemyFi ghter:

m」 CreatedSpriteCou nt;/表示创建战

机数量m_fCa nFireAfterCreated; 〃

判断敌机创建后能否开火

m_fFloatTime;m_bFloatUp;

4.战机飞行时是上浮还是下浮struct SpriteStruct

;

CSprite*pSprite;

Sprite Struc t*pNe xt;

SpriteStruct*pPrev;

};

SpriteStruc t*

CSprite*

5.精灵父类CGameSpritevirtual~CGameSprite();

//ge t方法

6」 essen.x类:m」 Ga me S tate; //游戏状态0:结束或者等待开始1:

初始化2游戏进行中.

CSprite*; 〃战机类

指针float m」 CreatedSpriteCou nt; 〃创造精灵数量

CSpriteList; //链表类精灵

CSpriteList diji; II链表类敌机

CEffect*di; 〃特效类精灵

5.算法描述

在外星球上玩家通过键盘WS AD键控制己方战机通过空格键发射子弹消灭外星球的邪恶战机。

游戏状态m」 Ga me S tate分为三种状态0, 1  2,其中0表示游戏结束状态 1表示游戏初始化 2则表示游戏运行状态

0 1的转换为“空格开始”初始化函数为Gamelnit函数

播放背景音乐。

1 2的转换自然发生 即游戏初始化函数后会自动将游戏状态从1置为2

2表示游戏运行状态在该状态敲击空格发射子弹消灭敌机消灭敌机分数增加被敌机打中自身的血量减少。

2 0的转换是游戏结束。

CGameMain::CGameMain()构造函数

完成初始化工作

初始化状态为0

设置开始按钮

我方战机初始化为空

创造精灵数量初始化为0

CGameMain::GameMainLoop(float fDeltaTime)

游戏的主循环根据游戏的状态切换逻辑

1、 当当游戏状态为0时主循环一直循环但不做处理而是等待空格键按下开始游戏。调用背景音乐。

2、 当游戏状态为1时调用Gamelnit()方法初始化游戏然后置游戏状态为2。当游戏状态为2时调用GameRun(fDeltaTi me)方法在CGame Main类的GameRun方法中遍历链接中的每个节点获得所有敌方战机的节点让战机执行LoopTick方法 实现战机发射子弹和上下浮动。

3、游戏结束时会执行GameEnd且置状态为0

CGameMain::Gamelnit()

完成对各种精灵的初始化

1.播放放在bin中的游戏背景音乐。

2初始化我方战机为战机类指针”Co ntrolSprite”设计我方战机的世界边界限制。3•初始化分数为0.

4.初始化血量为100.

CGameMain::GameRun(floatfDeltaTime)

对于游戏进行的设置

1.如果是我的战机我方战机初始化

2.敌方战机引用函数CEnemyFighter: :ClassTick(fDeltaTime)进行引用。

3.当游戏状态为2时调用GameRun(fDeltaTi me)方法在

CGame Main类的Game Run方法中遍历链接中的每个节点获得所有敌方

战机的节点让战机执行 LoopTick方法实现战机发

射子弹和上下浮动。

CGameMain::OnKeyDown(constintiKey,constboolbAltPress,constboolbShiftPress,constboolbCtrlPress)

游戏开始和控制按钮

1、 如果空格按下时游戏未开始 即游戏状态为0,则将游戏状态改为

1 运行游戏初始化函数(GameInit)。隐藏文字精灵“开始游戏”

萤光云(13.25元)香港CN2 新购首月6.5折

萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...

PacificRack 端午节再来一款年付$38 VPS主机 2核4GB内存1TB流量

这不端午节和大家一样回家休息几天,也没有照顾网站的更新。今天又出去忙一天没有时间更新,这里简单搜集看看是不是有一些商家促销活动,因为我看到电商平台各种推送活动今天又开始一波,所以说现在的各种促销让人真的很累。比如在前面我们也有看到PacificRack 商家发布过年中活动,这不在端午节(昨天)又发布一款闪购活动,有些朋友姑且较多是端午节活动,刚才有看到活动还在的,如果有需要的朋友可以看看。第一、端...

RAKsmartCloud服务器,可自定义配置月$7.59

RAKsmart商家一直以来在独立服务器、站群服务器和G口和10G口大端口流量服务器上下功夫比较大,但是在VPS主机业务上仅仅是顺带,尤其是我们看到大部分主流商家都做云服务器,而RAKsmart商家终于开始做云服务器,这次试探性的新增美国硅谷机房一个方案。月付7.59美元起,支持自定义配置,KVM虚拟化,美国硅谷机房,VPC网络/经典网络,大陆优化/精品网线路,支持Linux或者Windows操作...

雷霆战机boss模式为你推荐
邮箱群发邮箱最多能群发多少人易pc笔记本电脑好?还是易PC笔记本电脑好?邮箱怎么写工作邮箱怎么填如何免费开通黄钻怎么免费开黄钻?伪静态什么是伪静态伪静态有何作用bt封杀北京禁用BT下载,是真的吗?为什么?2012年正月十五山西省太原市2012年正月十五活动的相关情况服务器连接异常主服务器连接异常域名库想自己买一个域名,然后自己做一个网站,挂上去。请问基本流程是什么样的?263企业邮箱设置263企业邮箱如何添加新的信箱?
备案域名 vir 电信测速器 仿牌空间 大硬盘 免费主机 isatap 网站挂马检测工具 150邮箱 免费mysql asp免费空间申请 福建铁通 33456 爱奇艺会员免费试用 上海联通宽带测速 免费mysql数据库 深圳域名 域名和主机 北京主机托管 服务器托管价格 更多