将窗体的大小设置为常量
画对象:先获取图片,针对每一个对象都能狗获取到图片获取图片的行为是共有的,设计到父类中
每一个对象获取到图片的行为都是不一样的设计了一个抽象方法 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