Shoot射击游戏项目四
a:将窗体的大小设置为常量
b:画对象
想画对象先获取图片,针对每一个对象都能够获取到图片,获取到图片的行为是共有的,设计到父类中;---------FlyingObject
每一个对象得到图片的行为都是不一样的,设计了一个抽象方法--------------getImage();
在不同状态下,得到不同的图片:
状态:设计到父类中,设计常量:LIFE;DEAD;REMOVE;
默认状态:state = LIFE
获取图片的同时,需不需要判断当前状态????-------------------需要
每一个对象都需要判断,设计到超类,父类中;
每一个对象的判断的行为都是一样的,设计普通方法即可。
- --------FlyingObject:isLife()/isDead()/isRemove()
c:在六个子类对象中重写getImage()方法;
天空Sky:直接返回即可。
子弹Bullet:如果是存活的,返回images即可
如果是over的,删除即可
英雄机Hero:如果是存活的,返回images[0]/images[1]
小敌机Airplane:如果是存活的,返回images[0]
如果over,images[1]到images[4]进行切换,切换完毕,到images[4]之后进行删除
d:得到不同状态下的图片,进行开始画出来;
画对象的行为是共有的,所以设计到超类中;
每一个对象画的方式都是一样饿,所以设计为普通方法;
e:测试,调用即可
设计规则:
将所有子类所共有的行为和属性,可以设计到超类中,-----抽共性
所有子类的行为如果都是一样的,设计为普通方法;
所有子类的行为如果都是不一样的,要设计为抽象方法。
Shoot射击游戏项目五
a:需求分析
敌人入场
产生敌人:在shootMain类中nextOne()
需要定时加载敌人;----------enterAction()实现敌人入场
每400毫秒,获取到敌人,扩容,将敌人添加到数组的最后一位。
子弹入场
从英雄机里发射子弹Hero类设计一个方法来实现子弹发射--------shoot()
run()方法中,子弹的发射shootAction()
每400毫秒,获取到子弹数组,扩容,将子弹数组添加到数组的最后一位。
飞行物的移动
敌人的移动
子弹移动
天空移动
英雄机移动
英雄机随鼠标进行移动
在hero中设计一个方法 movedTo()实现英雄机的移动
在shootmian中简历箭头机制,检查鼠标的移动时间
删除越界的飞行物
在flyingobject中设计一个方法outOfBounds()------检测是否越界
在run()方法中,写一个outOFBoundsAction()---------删除越界的飞行物
遍历敌人数组 子弹数组 如果对象不越界,那么将存放到不越界的数组中,将不越界的数组复制到敌人数组中或者子弹数组中
设计接口
击中小敌机+大敌机-------得1或3分----------Enemy
击中蜜蜂----------随机得生命值 或 火力值---------Award