• 周三. 4 月 22nd, 2026

物嫩软件资讯网

软件资讯来物嫩

shoot射击游戏 day6

admin@wunen

5 月 31, 2025



1.需求分析

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

B :画对象:

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

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

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

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

默认状态:state = LIFE

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

每一个对象都需要判断,设计到超类/父类中;

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

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

C :在6个子类对象中重写getImage()方法;

Sky:直接返回即可。

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

​ 如果是over的,删除即可;

英雄机:如果是存活的,返回imgaes[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()实现英雄机的移动;

在ShootMian中建立监听机制,检测鼠标的移动事件;

E:删除越界的飞行物

在FLyingObject中涉及一个方法outOfBounds()—-检测是否越界;

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

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

F:设计接口:

击中小敌机+大敌机—–得1分 或者 3分——Enemy

击中蜜蜂—–随机得生命或者火力—–Award

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注