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

下载本文档

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

文档简介

1、飞机大战展示飞机大战展示主讲人:jsd07班 HXW 1 1. .飞机大战简介飞机大战简介 2. 2.需求分析需求分析 3. 3.概要设计概要设计 4. 4.详细设计详细设计 5. 5.编码编码1.1.飞机大战简介飞机大战简介 点击游戏窗口,游戏开始,窗口上面不断有敌机和蜜蜂降落,英雄机发射子弹,打中敌机加5分,打中蜜蜂加分或者加一条命游戏中所用到的主要图片展示游戏中所用到的主要图片展示敌机: 蜜蜂:背景子弹:游戏结束英机0:英机1: 游戏界面一游戏界面一 游戏开始 界面二界面二游戏在暂停状态界面三界面三1.游戏在运行状态2.敌机在下落3.蜜蜂在下落4.英机在发射子弹界面四界面四 游戏结束状态

2、2. 2.概要设计概要设计 进入游戏 游戏界面初始化 显示界面 开始游戏 敌人开始走步英机发射子弹打敌人 英机和敌人碰撞英机的生命为零。游戏结束3. 3.详细设计详细设计(1)将游戏背景画出,初始化蜜蜂,敌机,英机(2) 让画面动起来,并且实现被打上的飞机能消失(3)画出不同的状态,得分,拥有的命(1 1)将游戏背景画出,初始化蜜蜂,敌机,英机)将游戏背景画出,初始化蜜蜂,敌机,英机1)建类和初始化 父类:.class FlyingObjectimage,width,height,x,y敌机类:class Airplane extends 1 implements 2 speed Airpla

3、ne() 重写getScore() 蜜蜂类:class Bee extends 1 implements 3xSpeed,ySpeed,awardType Bee() 重写getType() 子弹类:class Bullet extends 1 speed Bullet(int x,int y) 英机类:class Hero extends 1life,doubleFire,images,indexHero() 主类射击类:class ShootGame extends JPanel WIDTH,HEIGHT background,start,pause,gameover airplane,b

4、ee,bullet,hero0,hero1 hero(Hero) flyings(FlyingObject) bullets(Bullet) ShootGame()初始化对象 static敌机接口:interface Enemyint getScore(); 奖励接口:interface AwardDOUBLE_FILE,LIFE int getType(); 2)A.在ShootGame类中运用构造方法对成员变量初始化 B.在main()方法中利用frame.setVisible(true);来自动调 用paint()方法 C.在paint()方法中画出背景,敌机,子弹,蜜蜂 英机初始化后的

5、效果图:(2 2)使画面动起来,并且打上的飞机消失)使画面动起来,并且打上的飞机消失1)敌人入场 A.创建action(),由于敌人入场不受人为控制,所以将enterAction()写在action()里的run()方法里面 B.实现enterAction()每产生一个对象扩容flyings,再存入flyings数组中 C.nextOne()的实现,生成0到19间的随机数为0时return new Bee();否则return new Airplane(); 2)敌人走步 A.在run()方法中写入stepAction()方法 B.在stepAction()中调用hero.step(), fl

6、yingsi.step, bulletsi.step使英机,敌机,子弹走步 C.分别在Hero()类,Airplane()类,Bullet()类,Bee()类中实现step(),让他们走步 3)子弹入场 A.子弹发射受系统控制,所以shootAction()写入run()中 B.实现shootAction(),扩容子弹数组,将产生的子弹对象存入子弹数组中4)鼠标控制英机移动 A.由于英机移动是人为控制,所以将控制的方法moveTo(x,y)写在run()外面 B.在Hero()实现moveTo(int x, int y)5)子弹和敌人碰撞 A.子弹和敌人碰撞是系统自动的,所以将bangActi

7、on()中 B.在bangAction()中,将子弹bulletsi传入bang()中,判断是否打中,如果打中敌机,则 Enemy e = (Enemy)one;score += e.getScore();如果打中蜜蜂,则Award a = (Award)one;int type = a.getType();switch (type) C.在FlyingObject实现bang()方法实现让画面动起来,并且实现被打上的飞机能消失后的效果图:(3 3)画分和命)画分和命, ,判断越界判断越界, ,英机碰撞英机碰撞, ,不同状态不同状态. .1)画分和命 A.画分和命的方法paintScore()

8、放在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)画状态的实现: A.在

温馨提示

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

评论

0/150

提交评论