应用软件课程设计-第一阶段实验报告.docx

应用软件课程设计-第一阶段实验报告.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 20 应用软件开发实践 第一阶段实验报告 ————微信打飞机(Funcode) 姓名: 学号: 班级: 目 录 TOC \o 1-3 \h \z \u 1.游戏截图 3 2.功能描述 3 3.流程图 3 4数据结构 13 5.算法描述 16 6游戏源代码 25 7.实验心得体会: 25 1.游戏截图 图 1 游戏开始界面 图2 游戏运行界面 图3 游戏结束界面 2.功能描述 1. 按下空格键游戏开始。 2. 通过上下左右 键控制玩家飞机移动上下左右移动,但不能飞出边境。 3. 玩家飞机每隔一段时间自动发射一发炮弹。 4. 玩家飞机被敌机碰到后,生命值会减少,生命值变为0的时候,游戏结束。 5. 在游戏上方会一直出现电脑飞机(敌机),敌机分为UFO、大、中、小四种类型,越小的飞机出现的几率越大。 6. 敌机被玩家飞机击中后,生命值会减少,生命值变为0时,该敌机被摧毁,玩家得分。越大的飞机越难击毁,击毁后玩家得分也越多。 7. 敌机飞到界面下方时,删除敌机。 8. 在界面内用一个文本显示玩家游戏得分。 9. 游戏中,大中小三种敌机由上自下飞行,而UFO则是由左至右飞行。 3.流程图 3.1主流程 游戏分四个状态:未开始、开始、运行和结束。CGameMain类是控制游戏流程的类,游戏屏幕每刷新一次,调用一次该类的GameMainLoop方法。GameMainLoop根据m_iGameState的值分别调用该类的GameInit、GameRun和GameEnd方法。这三个方法对应初始化游戏、游戏运行和游戏结束这三个状态。GameInit只执行一次。执行后修改游戏状态。屏幕刷新后,进入状态2,开始执行GameRun方法。当玩家HP0即玩家飞机不死的时候,GameRun一直被执行。玩家飞机被摧毁后,调用GameEnd执行一次,清除本局游戏数据,恢复游戏未开始状态。 图4 主流程图 3.2游戏初始化 完成游戏初始工作,界面上的工作:玩家得分显示为0,创建玩家飞机并放置在指定位置。此外,我们需要创建PlaneGame对象,该对象采用单例模式,所以不管游戏运行多少次,PlaneGame对象始终只有一个,并且把玩家飞机对象加入到PlaneGame对象中。 图5 游戏初始化 3.3游戏运行 游戏运行中,每刷新一次屏幕,需要根据必威体育精装版数据,更新玩家得分,移动玩家飞机,删除被摧毁的敌机和子弹,当达到相应的时间间隔时,创建新的敌机精灵和子弹精灵(玩家发射新的子弹)。 图6 游戏运行 3.4删除被击毁的敌机 游戏中的敌机对象,都保存在飞机世界类的敌机集合中,从该集合中按顺序从中依次获得敌机,检查其HP,如果HP小于等于0,删除对应的精灵,然后从集合中删除该节点对象。注意:不能先删集合中的对象,否则就找不到对应的精灵。 图 7 删除被攻击的精灵 3.5创建新的敌机 GameRun方法中有一个参数,用来保存程序主流程每运行一次(屏幕刷新一次)花费的时间。把这些时间累计起来,保存到飞机世界类的属性:制造敌机已用时间。当这个时间超过制造一架敌机需要花费的时间,表示一架新敌机已经制造好了,就在屏幕中生成一架新的敌机。 图 8创建新敌机 图9玩家飞机发射子弹 3.6游戏结束 将游戏中剩余的精灵删除,包括删除精灵本身和集合中对应的对象。 重新显示游戏开始的提示图片。 图10 玩家飞机发射子弹 3.7生产精灵对象 本游戏中的玩家飞机、敌方飞机和子弹这三种精灵类的对象都在精灵工厂类中产生。根据参数确定生产何种精灵。右下图是玩家飞机的生产过程,主要是创建对象,复制模板,并设置几个基本属性(碰撞、世界边界、初始位置、初始速度)。 图 11生产精灵对象 3.8键盘按下事件 本游戏中,游戏状态为1时,按下空格键,游戏状态转为2。游戏状态为2时,玩家按下了WSAD键,分别设置玩家飞机的上下左右速度。 图12键盘按下事件 3.9键盘弹起事件 本游戏中,游戏状态为2时,玩家松开WSAD键,相应设置玩家飞机上下左右速度为0。 图13 键盘弹起事件 3.10精灵与精灵的碰撞 本游戏中,玩家飞机和子弹精灵设置为发送碰撞,敌方飞机设置为接收碰撞。因此,会发生两种精灵与精灵的碰撞:子弹与敌方飞机的碰撞;玩家飞机与敌方飞机的碰撞。精灵碰撞时,相应减少精灵的HP。这样,在游戏运行时,就可以得到精灵必威体育精装版的HP,并根据HP对精灵做相应处理。 图14 精灵与精灵的碰撞 3.11世界边界碰撞事件 本游戏中,游戏状态为2时,玩家飞机碰到边界停止继续向前飞行,可通过FunCode设置。敌方飞机碰到边界,删除精灵,并从敌机集合中删除节点。敌方飞机的世界边界应该设置的比游戏屏幕大,这样,敌方飞机碰到屏幕的左右边界不

文档评论(0)

yyons2019 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档