数据挖掘---------&&

oop

Shoot射击游戏项目

1.需求分析

运行项目,看结果:

A: 小敌机 大敌机 蜜蜂--------敌人

​      英雄机发射子弹

B: 

子弹击中小敌机--------玩家得分 1分

子弹击中大敌机--------玩家得分 5分

子弹击中小蜜蜂---------玩家得生命  1生命值或30火力值

C:单倍火力 双倍火力的变化

 英雄机的火力值变为0的时候,就变成了单倍火力

火力值大于0的时候,变为双倍活力;依次减少2

D: 碰撞

敌人可以与英雄机发生碰撞,碰撞之后英雄级的生命值减少,变为0的时候游戏结束。

2.技术分析

设计类:

A: 找对象:6个对象

英雄机 小敌机 大敌机 小蜜蜂 子弹 天空

B: 抽类

Hero/Airplane/Bigairplane/Bee/Bullet/Sky

C: 设计成员变量和方法

D: 测试

Shoot设计项目二

1.需求分析

A: 设计一个父类,超类;并且让6个对象继承超类,测试

B:给超类添加构造方法;让6个对象分别调用超类

C: 设置对象数组,进行测试

D:在6个子类,派生类中重写

E:画窗体

2.技术分析

重写和重载:(面试笔试题)

重写:(override)

​    发生在父子类中,方法名相同,参数列表相同,方法体不同

​     遵循运行期绑定,看对象的类型来调用方法

重载:(overload)

​      发生在一个类中,方法名相同,参数列表不同,方法体不同

​      遵循编译器绑定,看参数 引用类型的绑定的方法
3.代码实现

Shoot设计项目三

1.需求分析

A: 给类中间添加修饰符

B:给6个派生类中添加图片属性

1)6个派生类中添加static属性

2)在父类中添加静态方法loadlmage()加载图片

3)6个派生类中static代码块,调用loadlmage()方法
2.技术实现

修饰符

Y/Npublicprotecteddefaultprivate
同一个类yyyy
同一个包中不同类yyy
不同包子类yy
不同包中的类y

Shoot射击游戏项目四

1.需求分析

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

B:画对象

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

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

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

状态:设计到父类中,设计常量: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

​	击中蜜蜂

Shoot射击游戏项目六

A:需求分析
敌人入场
 产生敌人:在shootMain类中nextOne()
 需要定时加载敌人;----------enterAction()实现敌人入场
 每400毫秒,获取到敌人,扩容,将敌人添加到数组的最后一位。
 子弹入场
 从英雄机里发射子弹Hero类设计一个方法来实现子弹发射--------shoot()
 run()方法中,子弹的发射shootAction()
 每400毫秒,获取到子弹数组,扩容,将子弹数组添加到数组的最后一位。
 飞行物的移动 
 敌人的移动
 子弹移动
 天空移动
 英雄机移动
 英雄机随鼠标进行移动
 在hero中设计一个方法 movedTo()实现英雄机的移动
 在shootmian中简历箭头机制,检查鼠标的移动时间
删除越界的飞行物
 在flyingobject中设计一个方法outOfBounds()------检测是否越界
 在run()方法中,写一个outOFBoundsAction()---------删除越界的飞行物
 遍历敌人数组 子弹数组 如果对象不越界,那么将存放到不越界的数组中,将不越界的数组复制到敌人数组中或者子弹数组中
 设计接口
 击中小敌机+大敌机-------得1或3分----------Enemy
 击中蜜蜂----------随机得生命值 或 火力值---------Award
A:子弹与敌人碰撞:

设计到父类中,hit()方法,实现检测与敌人发生碰撞

​	 在父类中设计一个goDead()实现飞行物over;
 	在Hero类中设计实现addLife(),addDoubleFire()
 	通过Airplane和BigAirplane中的接口来实现玩家的分
 	通过Bee中的接口实现玩家获得奖励

##### 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值