-
Shoot射击游戏项目四
1.需求分析
A:将窗体大小设置为常量
B:画对象:
先获取图片(每一个对象都有),获取的行为是共有的,放入父类中。
每一个对象得到的图片行为不同,在父类中设计一个抽象方法-getimage();
在不同状态下,得到不同照片:
状态:父类中,设计常量:life、dead、remove
默认状态:state=life
获取图片的同时,需要判断当前状态
每一个对象都需要判断,涉及到超类、父类中:
每一个对象判断的行为都是一样的-----普通方法: FlyingObject:isLife()/isDead()/isRemove()
C:在6个子类对象中重写getImage()方法;
- sky:直接返回即可、
- 子弹Bullet:如果存活的,返货images即可,如果over,删除即可。
- 英雄机:如果存活的,返回images[0]/images[1]
- 小敌机:如果存活,返回images[0],如果over,返回images[1]到images[4]进行切换,切换完毕,到images[4]删除。
D:得到不同状态的图片,进行画对象;
画对象的行为是共有的—超/父类;
每个对象画的方式相同—普通方法;
E:测试,调用。
设计规则:
将所有的子类所共有的行为和属性,可以涉及到父类中;------抽共性
所有子类的行为都是一样的—普通方法;行为都不一样-----抽象方法。
Shoot射击游戏项目五
1.需求分析
A:敌人入场
- 产生敌人:在shootMain类中,
- 定时加载敌人----enterAction()
- 每400毫秒获取敌人,扩容,将敌人添加到最后一位。
B:子弹入场
- 英雄机发射子弹hero类设计方法实现子弹发射—short()
- run()方法,子弹发射shortAction()
- 每400毫秒获取敌人,扩容,将敌人添加到最后一位。
C:飞行物的移动
- 地热的移动
- 天空的移动
- 子弹的移动
D:英雄机随鼠标的移动而移动
- 在greo中设计方法:movedTo()实现英雄级的运动;
- 在ShootMain中建立监听机制,检测鼠标的移动事件;
删除越界的飞行物
-
在FlyingObject中设计一个方法outOfBounds()–检测是否越界;
-
在run()方法中,写一个方法outOfBoundsAction()删除越级的飞行物
除越级的飞行物
- 便利敌人、子弹数组,如果对象不越界,那么将存放到不越界的数组中,将不越界的数组复制到敌人、子弹数组中。
设计接口:
- 击中小敌机+大敌机-----得1分 或者 3分------Enemy
- 击中蜜蜂-----随机得生命或者火力-----Award