收藏 分销(赏)

飞机大战展示.ppt

上传人:丰**** 文档编号:11980574 上传时间:2025-08-25 格式:PPT 页数:25 大小:931.50KB 下载积分:10 金币
下载 相关 举报
飞机大战展示.ppt_第1页
第1页 / 共25页
飞机大战展示.ppt_第2页
第2页 / 共25页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版文本样式,第二级,*,单击此处编辑母版标题样式,飞机大战展示,主讲人:jsd07班 HXW,1,.,飞机大战简介 2.需求分析 3.概要设计 4.详细设计 5.编码,1.飞机大战简介,点击游戏窗口,游戏开始,窗口上面不断有敌机和蜜蜂降落,英雄机发射子弹,打中敌机加5分,打中蜜蜂加分或者加一条命,游戏中所用到的主要图片展示,敌机:,蜜蜂:,背景,子弹:,游戏结束,英机0:,英机1:,游戏界面一,游戏开始,界面二,游戏在暂停状态,界面三,1.游戏在运行状态,2.敌机在下落,3.蜜蜂在下落,4.英机在发射子弹,界面四,游戏结束状态,2.概要设计,进入游戏,游戏界面初始化,显示界面,开始游戏,敌人开始走步,英机发射子弹打敌人,英机和敌人碰撞,英机的生命为零。游戏结束,3.详细设计,(1)将游戏背景画出,初始化蜜蜂,敌机,英机,(2)让画面动起来,并且实现被打上的飞机能消失,(3)画出不同的状态,得分,拥有的命,(1)将游戏背景画出,初始化蜜蜂,敌机,英机,1)建类和初始化,父类:.,class FlyingObject,image,width,height,x,y,敌机类:,class Airplane extends 1 implements 2,speed,Airplane(),重写getScore(),蜜蜂类:,class Bee extends 1 implements 3,xSpeed,ySpeed,awardType,Bee(),重写getType(),子弹类:,class Bullet extends 1,speed,Bullet(int x,int y),英机类:,class Hero extends 1,life,doubleFire,images,index,Hero(),主类射击类:,class ShootGame extends JPanel,WIDTH,HEIGHT,background,start,pause,gameover,airplane,bee,bullet,hero0,hero1,hero(Hero),flyings(FlyingObject),bullets(Bullet),ShootGame()初始化对象,static,敌机接口:,interface Enemy,int getScore();,奖励接口:,interface Award,DOUBLE_FILE,LIFE,int getType();,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时return new Bee();否则return new Airplane();,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(int x,int y),5)子弹和敌人碰撞,A.子弹和敌人碰撞是系统自动的,所以将bangAction(),中,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)画分和命,判断越界,英机碰撞,不同状态.,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)画状态的实现:,A.在ShootGame中定义三个静态常量,B.画出状态paintState();,C.控制run()里面的方法,D.重写mouseClicked(),E.重写mouseExited(),F.重写mouseEntered(),游戏结束状态展示:,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服