飞机大战的后续设计思路part02与相关完成截图

将窗体的大小设置为常量

画对象:先获取图片,针对每一个对象都能狗获取到图片获取图片的行为是共有的,设计到父类中

每一个对象获取到图片的行为都是不一样的设计了一个抽象方法 getimage();

在不同状态下获取不同的图片:

设计到父类中:设计常量、:life、dead、remove、

默认状态:、state==life、

获取图片的同时,需要判断当前的状态

每一个对象都需要判断,所以可以设计到父类中;

每一个对象判断的方法是一样的,设计成普通方法就好

FlyingObject、islife()/isDead()/isRemove()/

在六个子类中重写getImage()方法;

  • sky:直接返回;
  • bullet:如果是存活的,返回images
    • 如果是over,删除
  • 主机如果是存活的,返回images[0]/images[1]
  • 敌机如果是存活的,返回images[0]
    • 如果是 over ,images[1]—images[4],进行切换
    • 进行切换,切换完毕之后进行删除

得到不同状态的图片,进行画对象:

画对象的行为是共有的,所以设计到父类中

每一个对象的方式都是一样的

所以设计为普通方法

调用

测试·······

设计规则:将所有的子类所共有的行为和属性设计到父类中。

所有的子类,行为都是一样的。设计为普通方法;所有子类的行为不一致,设计为抽象方法

敌人的入场:

  • 产生敌人:在主函数(ShootMain)中enemy()
  • 需要定时加载敌人----enterAction()视线敌人入场
  • 没400百毫秒获取敌人的,扩容,将数组添加到最后一位

子弹入场:

主机重发黄色子弹,hero类设计方法实现子弹的发射

run(),子弹的发射shootAction();

没死百毫秒,获取到子弹数组、扩容、将自担数组添加到数组的的最后一位

飞行物的一栋:

敌人

子弹

天空

主机随着鼠标进行移动

在主机中涉及方法:movedto()实现主机移动

在shoot中建立监视机制,检测鼠标移动事件

删除越界飞行物

在FlyingObiect中检测是否越界

在run()中写方法outOfBoundsAction();删除越界飞行物

遍历数组,子弹数组。如果对象不越界。则存放到不越界的数组中。将不越界的数组复制到敌人数组中,或是子弹数组中

设计接口“

击中小敌机,得一分 Enamy

击中蜜蜂–得到----随机的生命 award
在这里插入图片描述

基于Java的飞机大战游戏主要需要我方飞机和敌方飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我方飞机可以随意移动,敌方飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动,我方飞机在游戏开始时就一直能发射子弹,当我方子弹碰到敌方飞机时,敌方飞机消失。当玩家飞机碰到敌方子弹时,生命值减一,直到玩家飞机生命值为一时,游戏结束。基本模块包括:游戏状态控制功能模块、游戏难度的调整模块、游戏界面绘画功能模块、玩家游戏控制功能模块等。本系统结构如下: (1)游戏状态控制功能模块:游戏的状态控制包括运行及结束游戏,首先进入游戏的开始页面,在游戏进行时,玩家必须躲避或者击落敌方飞机,玩家飞机的生命值降低为0的时候游 戏就会结束,弹出游戏结束界面 (2)游戏难度的调整模块:玩家玩的时间越长游戏的难度越高,敌方飞机的数量越多、敌方飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。 (3)游戏界面绘画功能模块:左上角会显示玩家飞机当前生命值,游戏时间,当前分数,其他地方用来输出玩家对我方飞机的控制与敌方飞机的动作显示 (4)玩家游戏控制功能模块: 玩家可以通过控制鼠标或者键盘来控制方飞机(Hero airplane)的移动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值