战机太空战机实验报告

全民飞机大战星星战机  时间:2021-01-22  阅读:()

太空战机实验报告

1 .实验截图

图一开始游戏

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

起。 

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

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

2.游戏功能

游戏规则

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

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

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

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

5.在游戏右方会一直出现电脑飞机敌机 敌机分为超大、大、中、

小四种类型越大的飞机出现的几率越小。 

6.敌机被玩家飞机击中后生命值会减少生命值变为0时该敌机被摧毁玩家得分。越大的飞机越难击毁击毁后玩家得分也越多。

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

8.敌方飞机的子弹分为两种一种为普通子弹,另一种子弹为高级子弹当敌方飞机的普通子弹与玩家飞机的子弹碰撞时相互抵消,敌方飞机的高级子弹不会与玩家飞机的子弹抵消

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

3.流程图

4.数据结构

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

1.我方战机类C MyF ighter m_fVelocityLeft; 控制飞机飞行的速度上下左右。 //m_fVelocityRight;m_fVelocityUp;m_fVelocityDown;

.

表示子弹的发射间隔// m_fBulle tC reateT ime;

m_b C anF ire; //表示判断是否开火

2.子弹类C Bull et m_iType  //表示该子弹是谁发射的变量

3.敌方战机类C EnemyF ighter:m_fCreateTime;

//创建敌机的时间见隔m_iCreatedSpriteCount;//表示创建战机数量m_fC anF ireAfte rC reated; //判断敌机创建后能否开火m_fBulletC re ateT ime; //子弹发射时间间隔m_fF lo atTime; //战机飞行时上下浮动的时间间隔m_bF lo atUp; //战机飞行时是上浮还是下浮

4.链表类C Sp riteL is t:s truc t Sp rite S truc t //一个精灵结构体Sp rite S truc t {

C Sp rite

*p Sp rite;

S p rite S truc t*pNext;

S p rite S truc t*p P rev;

};

S p rite S truc t*m_p Lis tHe ad er; //一个头节点指针int m_iListSize; //表示链表节点数的私有成员变量C Sp rite*m_p Sp rite L is t; //精灵指针

5.精灵父类CG ame S p rite 

方法//get virtual~CGameSprite();

6.lessen.x类m_iG ame S tate;

//游戏状态0结束或者等待开始1 初始化2游戏进行中.CS p rite*m_p G ameBeg in; //游戏开始文字精灵

CMyFighter*m_pMyFighter; //战机类指针float m_iCreatedSpriteCount; //创造精灵数量

C Sp riteL is t m_S p rite L is t; //链表类精灵

C SpriteList diji; //链表类敌机

CEffect*die_texiao; //特效类精灵

5.算法描述

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

游戏状态m_iG ame S tate分为三种状态0  1  2 其中0表示游戏结束状态 1表示游戏初始化 2则表示游戏运行状态

0?1的转换为“空格开始”初始化函数为G ameIn it函数

播放背景音乐。

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

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

2?0的转换是游戏结束。

CGameMain: :C GameMain()构造函数

完成初始化工作

初始化状态为0

设置开始按钮

我方战机初始化为空

创造精灵数量初始化为0

CGameMain: :GameMainLoop(float fDeltaTime)

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

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

2、 当游戏状态为1时调用G ameInit()方法初始化游戏然后置游戏状态为2。当游戏状态为2时调用G ameRun(fDe ltaT ime)方法在CG ameMa in类的G ameRun方法中遍历链接中的每个节点获得所有敌方战机的节点让战机执行Lo op Tic k方法实现战机发射子弹和上下浮动。

。 0且置状态为G ameEnd游戏结束时会执行、 3 

CGameMain: :GameInit()

完成对各种精灵的初始化

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

2.初始化我方战机为战机类指针”C o ntro lS p rite”.设计我方战机的世界边界限制。

3.初始化分数为0.

4.初始化血量为100.

CGameMain: :GameRun(floatfDeltaTime)

对于游戏进行的设置

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

2.敌方战机引用函数CEnemyF ighter: :C las s Tick(fDe ltaTime)进行引用。

3.当游戏状态为2时调用G ameRun(fDe lt aT ime)方法在CG ameMa in类的G ame Run方法中遍历链接中的每个节点获得所有敌方战机的节点让战机执行LoopTick方法实现战机发射子弹和上下浮动。 CGameMain: :OnKeyDown(constintiKey,constboolbAltPress,constboolbShiftPress,constboolbCtrlPress)

游戏开始和控制按钮

1、如果空格按下时游戏未开始即游戏状态为0 则将游戏状态改为1 运行游戏初始化函数G ameInit 。隐藏文字精灵“开始游戏”。

2、如果游戏状态是2时设置战机移动调用函数O nMo ve

3、如果空格按下时,战机为空。则调用函数S etC anF ire 按下空格键即可发送子弹。void CGameMain: :OnSpriteColSprite(const char

*szSrcName,const char*szTarName)

易探云:香港物理机服务器仅550元/月起;E3-1230/16G DDR3/SATA 1TB/香港BGP/20Mbps

易探云怎么样?易探云(yitanyun.com)是一家知名云计算品牌,2017年成立,从业4年之久,目前主要从事出售香港VPS、香港独立服务器、香港站群服务器等,在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。目前,易探云推出免备案香港物理机服务器性价比很高,E3-1230 8 核*1/16G DDR3/SATA 1TB/香港BGP线路/20Mbps/不限流量,仅...

Megalayer(159元 )年付CN2优化带宽VPS

Megalayer 商家我们还算是比较熟悉的,商家主要业务方向是CN2优化带宽、国际BGP和全向带宽的独立服务器和站群服务器,且后来也有增加云服务器(VPS主机)业务。这次中秋节促销活动期间,有发布促销活动,这次活动力度认为还是比较大的,有提供香港、美国、菲律宾的年付VPS主机,CN2优化方案线路的低至年付159元。这次活动截止到10月30日,如果我们有需要的话可以选择。第一、特价限量年付VPS主...

搬瓦工VPS:高端线路,助力企业运营,10Gbps美国 cn2 gia,1Gbps香港cn2 gia,10Gbps日本软银

搬瓦工vps(bandwagonhost)现在面向中国大陆有3条顶级线路:美国 cn2 gia,香港 cn2 gia,日本软银(softbank)。详细带宽是:美国cn2 gia、日本软银,都是2.5Gbps~10Gbps带宽,香港 cn2 gia为1Gbps带宽,搬瓦工是目前为止,全球所有提供这三种带宽的VPS(云服务器)商家里面带宽最大的,成本最高的,没有第二家了! 官方网站:https...

全民飞机大战星星战机为你推荐
马云将从软银董事会辞职阿里巴巴马云为啥叫董事局主席而不叫董事会主席?董事局和董事会啥区别?美国10次啦导航gps卫星导航用的卫星应该是美国的吧?那有限几十颗卫星怎么能同时给地面上如此多的终端提供导航呢?免费送q币活动有没有免费送Q币的活动?燃气热水器和电热水器哪个好电热水器和燃气热水器哪一个更安全,且更节省能源?传奇类手游哪个好传奇手游版哪个好玩人多?浏览器哪个好用浏览器哪个最好用?绝地求生加速器哪个好绝地求生的加速器哪个好用?炒股软件哪个好网上买卖股票软件哪个好用车险哪个好私家车买什么保险好播放器哪个好什么播放器好用
厦门域名注册 备案未注册域名 动态ip的vps 花生壳免费域名申请 什么是域名解析 187邮箱 新加坡主机 美国便宜货网站 eq2 java虚拟主机 帽子云 bgp双线 lol台服官网 免费cdn 上海联通宽带测速 web服务器搭建 申请网站 google台湾 空间登陆首页 谷歌台湾 更多