战机太空战机实验报告

雷霆战机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)。隐藏文字精灵“开始游戏”

CloudCone:$17.99/年KVM-1GB/50GB/1TB/洛杉矶MC机房

CloudCone在月初发了个邮件,表示上新了一个系列VPS主机,采用SSD缓存磁盘,支持下单购买额外的CPU、内存和硬盘资源,最低年付17.99美元起。CloudCone成立于2017年,提供VPS和独立服务器租用,深耕洛杉矶MC机房,最初提供按小时计费随时退回,给自己弄回一大堆中国不能访问的IP,现在已经取消了随时删除了,不过他的VPS主机价格不贵,支持购买额外IP,还支持购买高防IP。下面列...

2021HawkHost老鹰主机黑色星期五虚拟主机低至3.5折 永久4.5折

老鹰主机HawkHost是个人比较喜欢的海外主机商,如果没有记错的话,大约2012年左右的时候算是比较早提供支付宝付款的主机商。当然这个主机商成立时间更早一些的,由于早期提供支付宝付款后,所以受众用户比较青睐,要知道我们早期购买海外主机是比较麻烦的,信用卡和PAYPAL还没有普及,大家可能只有银联和支付宝,很多人选择海外主机还需要代购。虽然如今很多人建站少了,而且大部分人都用云服务器。但是老鹰主机...

华纳云CN2高防1810M带宽独享,三网直cn218元/月,2M带宽;独服/高防6折购

华纳云怎么样?华纳云是香港老牌的IDC服务商,成立于2015年,主要提供中国香港/美国节点的服务器及网络安全产品、比如,香港服务器、香港云服务器、香港高防服务器、香港高防IP、美国云服务器、机柜出租以及云虚拟主机等。以极速 BGP 冗余网络、CN2 GIA 回国专线以及多年技能经验,帮助全球数十万家企业实现业务转型攀升。华纳云针对618返场活动,华纳云推出一系列热销产品活动,香港云服务器低至3折,...

雷霆战机boss模式为你推荐
authorware素材怎么将authorware制作出来的图片加入桌面背景邮箱群发如何在电子邮箱中实现群发邮件?weipin唯品宝是什么?和唯品金融有什么关系?flash导航条如何制作flash导航条吴晓波频道买粉看吴晓波频道的心得微信如何建群在微信里怎么创建一个群别人可以加入扫描二维码的加入微信如何建群微信建群怎么建开机滚动条谁会调开机的滚动条人人逛街人人逛街评论怎么不显示链接了?好像4月28日就不能显示了。是什么原因呢?人人逛街人人都喜欢逛街吗
查询域名 太原域名注册 php主机租用 网站域名备案查询 个人域名备案 域名备案收费吗 备案域名出售 老左 mach5 宕机监控 gitcafe 512m 魔兽世界台湾服务器 灵动鬼影 777te 毫秒英文 有益网络 有奖调查 网站cdn加速 可外链网盘 更多