太空战机实验报告.doc

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
太空战机实验报告 实验截图 图一开始游戏 图二我方战机,敌方战机出现。敌方战机随机发射子弹,并上下浮动。 背景音乐响起。 图三射杀战机,积分增加。敌机与子弹碰撞,消失。 图四被敌机射杀,血量减少为0 游戏功能 游戏规则 按下空格键游戏开始。 通过WSAD 键控制玩家飞机移动上下左右移动,但不能飞出边境。 当玩家按下空格键时,玩家飞机发射子弹。 玩家飞机被敌机碰到后,生命值会减少,生命值变为0的时候,游戏结束。 在游戏右方会一直出现电脑飞机(敌机),敌机分为超大、大、中、小四种类型,越大的飞机出现的几率越小。 敌机被玩家飞机击中后,生命值会减少,生命值变为0时,该敌机被摧毁,玩家得分。越大的飞机越难击毁,击毁后玩家得分也越多。 敌机飞到界面左方时,删除敌机。 敌方飞机的子弹分为两种,一种为普通子弹,另一种子弹为高级子弹,当敌方飞机的普通子弹与玩家飞机的子弹碰撞时相互抵消,敌方飞机的高级子弹不会与玩家飞机的子弹抵消 在界面外用一个文本显示玩家游戏得分。 流程图 数据结构 创建5个继承类:我方战机类CMyFighter、子弹类CBulletCEnemyFighter类CSpriteList、精灵父类CGameSpriteCMyFighter: m_fVelocityLeft; // 控制飞机飞行的速度上下左右。 m_fVelocityRight; m_fVelocityUp; m_fVelocityDown; m_fBulletCreateTime; //表示子弹的发射间隔CBullet: m_iType; //表示该子弹是谁发射的变量 CEnemyFighter: m_fCreateTime; // 创建敌机的时间见隔 m_iCreatedSpriteCount;//表示创建战机数量 m_fCanFireAfterCreated; //判断敌机创建后能否开火 m_fBulletCreateTime; //子弹发射时间间隔 m_fFloatTime; //战机飞行时上下浮动的时间间隔 战机飞行时是上浮还是下浮 CSpriteList: struct SpriteStruct //一个精灵结构体SpriteStruct;一个头节点指针表示链表节点数的变量父类CGameSprite在外星球上,玩家通过键盘WSAD键控制己方战机,消灭外星球的邪恶战机。 m_iGameState分为三种状态0,1,2 ,其中0表示游戏结束状态,1表示游戏初始化,2则表示游戏运行状态; 0 ( 1的转换为“空格开始”,初始化函数为GameInit函数; 播放背景音乐。 1 ( 2的转换自然发生,即游戏初始化函数后会自动将游戏状态从1置为2 2 表示游戏运行状态,在该状态,敲击空格发射子弹消灭敌机,消灭敌机分数增加,被敌机打中自身的血量减少。 2 ( 0的转换是游戏结束。 CGameMain::CGameMain()构造函数 完成初始化工作 初始化状态为0 设置开始按钮 我方战机初始化为空 创造精灵数量初始化为0 CGameMain::GameMainLoop(float fDeltaTime ) 游戏的主循环,根据游戏的状态切换逻辑 当当游戏状态为0时,主循环一直循环,但不做处理,而是等待空格键按下,开始游戏。调用背景音乐。 当游戏状态为1时,调用GameInit()方法初始化游戏,然后置游戏状态为2。当游戏状态为2时,调用GameRun(fDeltaTime)方法,在CGameMain类的GameRun方法中,遍历链接中的每个节点,获得所有敌方战机的节点,让战机执行LoopTick方法,实现战机发射子弹和上下浮动。 CGameMain::GameInit() 完成对各种精灵的初始化 播放放在bin中的游戏背景音乐。 初始化我方战机为战机类指针”ControlSprite”.设计我方战机的世界边界限制。 初始化分数为0. 初始化血量为100. CGameMain::GameRun(floatfDeltaTime ) 对于游戏进行的设置 1.如果是我的战机,我方战机初始化 2.敌方战机引用函数CEnemyFighter::ClassTick( fDeltaTime )进行引用。 3.当游戏状态为2时,调用GameRun(fDeltaTime)方法,在CGameMain类的GameRun方法中,遍历链接中的每个节点,获得所有敌方战机的节点,让战机执行LoopTick方法,实现战机发射子弹和上下浮动。 CGameMain::OnKeyDown(constintiKey,constbo

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档