飞机大战展示_第1页
飞机大战展示_第2页
飞机大战展示_第3页
飞机大战展示_第4页
飞机大战展示_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

飞机大战展示,主讲人:jsd07班HXW,1.飞机大战简介2.需求分析3.概要设计4.详细设计5.编码,1.飞机大战简介,点击游戏窗口,游戏开始,窗口上面不断有敌机和蜜蜂降落,英雄机发射子弹,打中敌机加5分,打中蜜蜂加分或者加一条命,游戏中所用到的主要图片展示,敌机:,蜜蜂:,背景,子弹:,游戏结束,英机0:,英机1:,游戏界面一,游戏开始,界面二,游戏在暂停状态,界面三,1.游戏在运行状态2.敌机在下落3.蜜蜂在下落4.英机在发射子弹,界面四,游戏结束状态,2.概要设计,进入游戏,游戏界面初始化,显示界面,开始游戏,敌人开始走步,英机发射子弹打敌人,英机和敌人碰撞,英机的生命为零。游戏结束,3.详细设计,(1)将游戏背景画出,初始化蜜蜂,敌机,英机(2)让画面动起来,并且实现被打上的飞机能消失(3)画出不同的状态,得分,拥有的命,(1)将游戏背景画出,初始化蜜蜂,敌机,英机,1)建类和初始化,父类:.classFlyingObjectimage,width,height,x,y,敌机类:classAirplaneextends1implements2speedAirplane()重写getScore(),蜜蜂类:classBeeextends1implements3xSpeed,ySpeed,awardTypeBee()重写getType(),子弹类:classBulletextends1speedBullet(intx,inty),英机类:classHeroextends1life,doubleFire,images,indexHero(),主类射击类:classShootGameextendsJPanelWIDTH,HEIGHTbackground,start,pause,gameoverairplane,bee,bullet,hero0,hero1hero(Hero)flyings(FlyingObject)bullets(Bullet)ShootGame()初始化对象static,敌机接口:interfaceEnemyintgetScore();奖励接口:interfaceAwardDOUBLE_FILE,LIFEintgetType();,2)A.在ShootGame类中运用构造方法对成员变量初始化B.在main()方法中利用frame.setVisible(true);来自动调用paint()方法C.在paint()方法中画出背景,敌机,子弹,蜜蜂英机,初始化后的效果图:,(2)使画面动起来,并且打上的飞机消失,1)敌人入场A.创建action(),由于敌人入场不受人为控制,所以将enterAction()写在action()里的run()方法里面B.实现enterAction()每产生一个对象扩容flyings,再存入flyings数组中C.nextOne()的实现,生成0到19间的随机数为0时returnnewBee();否则returnnewAirplane();,2)敌人走步A.在run()方法中写入stepAction()方法B.在stepAction()中调用hero.step(),flyingsi.step,bulletsi.step使英机,敌机,子弹走步C.分别在Hero()类,Airplane()类,Bullet()类,Bee()类中实现step(),让他们走步,3)子弹入场A.子弹发射受系统控制,所以shootAction()写入run()中B.实现shootAction(),扩容子弹数组,将产生的子弹对象存入子弹数组中,4)鼠标控制英机移动A.由于英机移动是人为控制,所以将控制的方法moveTo(x,y)写在run()外面B.在Hero()实现moveTo(intx,inty),5)子弹和敌人碰撞A.子弹和敌人碰撞是系统自动的,所以将bangAction()中B.在bangAction()中,将子弹bulletsi传入bang()中,判断是否打中,如果打中敌机,则Enemye=(Enemy)one;score+=e.getScore();如果打中蜜蜂,则Awarda=(Award)one;inttype=a.getType();switch(type)C.在FlyingObject实现bang()方法,实现让画面动起来,并且实现被打上的飞机能消失后的效果图:,(3)画分和命,判断越界,英机碰撞,不同状态.,1)画分和命A.画分和命的方法paintScore()放在paint()中B.实现paintScore(g)方法g.setColor();g.setFont();g.drawImage(score:+score,10,25,null);g.drawImage(LIFE:+hero.getLife(),10,45,null);,2)判断越界A.越界方法OutOfBoundAction()写在run()中B.实现OutOfBoundAction()1)声明活着的数组2)遍历flyings/bullets数组判断对象是否不越界:若true:将对象添加到活着的数组中3)将活着的数组复制到flyings/bullets数组中,3)英雄机与敌机碰撞,检查游戏是否结束A.检查英雄机与敌机是否碰撞checkGameOverAction()B.实现checkGameOverAction(),在这个方法里面判断判断游戏是否结束isGameOver()C.在isGameOver()中判断敌机与英机是否撞hit(),在Hero中实现hit()方法,,4)画状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论