shoot射击--day06

Shoot射击游戏项目四

1.需求分析

A:将窗体的大小设置为常量

B:画对象:

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

每一个对象得到图片的行为都是不一样的,设计了一个抽象方法---getlmage();

在不同状态下,得到不同图片:

状态:

设计到父类中,设计常量:LIFE;DEAD;REMOVE;

默认状态:

state=LIFE

获取图片的同时,需不需要判断当前的状态??需要每一个对象都需要判断,设计到超类/父类中;

而每一个对象判断的行为都是一样的,设计普通方法即可;

—FlyingObject:isLife()/isDead()/isRemove()

C:在6个子类中重写getlmage()方法;

Sky:直接返回即可。

子弹Bullet:如果是存活的,返回iamages即可

		    如果是over的,删除即可;

英雄机:如果是存活的,返回images[0]/images[1]

小敌机:如果是存活的,返回images[0]

	      如果是over的,images[1]到images[4]进行切换,切换完毕,到了images[4]后进行删除;

D:得到不同状态下的图片,进行开始画出来;

画对象是共有的,所以设计到超类中;

每一个对象画的方式都是一样的,所以设计为【普通方法】;

E:测试,调用即可;

设计规则:

将所有子类所共有的行为和属性,可以设计到超类中;--抽共性

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

Shoot射击游戏项目五

1.需求分析

A:产生敌人:在shootmain类中nextone()

需要定时加载敌人-------enterAction()实现敌人入场

每400毫秒获取到敌人,扩容,将敌人添加到数组的最后一位

B: 子弹入场

英雄机发射子弹,Hero类中设计一个方法用来实现子弹的发射----shoot()

run()方法中,子弹的发射shootAction()

每400毫秒获取到子弹,扩容,将敌人添加到数组的最后一位C:飞行物的移动

敌人的移动

子弹的移动

天空的移动

D: 英雄机随鼠标去移动

在hero中设计方法:movedTo()实现英雄机的移动

在ShootMain中建立监听机制,检测鼠标的移动时间

E: 删除越界的飞行物

在FlyingObject中设计一个方法outOfBounds()------检测是否越界

在run()方法中,写一个方法outOfboundsAction();------删除越界的飞行物

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

F: 设计接口

击中小敌机+大敌机------得1分或3分-------enemy

击中蜜蜂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值