Java实战项目——飞机大战

游戏功能概览

本小游戏共有五个类,分别是敌机类,蜜蜂类,英雄机类,背景类,已经继承JPanl类的绘图类Panl,子弹类。

实现功能:

  • 英雄机击毁敌机增加积分
  • 英雄机击毁蜜蜂增加血量和积分
  • 英雄机碰到敌机则扣血
  • 积分到达一定分数,游戏通关
  • 英雄机血量耗尽或子弹耗尽,游戏结束
游戏界面

在这里插入图片描述

在这里插入图片描述

实现思路

背景类,继承Thread类:

  • 成员变量Background:保存背景图片;
  • 成员变量x,y:保存图片的位置;
  • 构造方法:读取图片在电脑中位置,将Background,x,y赋值;
  • move方法:移动图片位置;
  • run方法:通过无限循环执行move方法,不停改变图片位置;

敌机类,继承Thread类:

  • 成员变量name:保存敌机名;
  • 成员变量nowplane:保存当前敌机图片;
  • 成员变量dieplane数组,保存敌机死亡的过程图片;
  • 成员变量x,y:保存当前敌机的位置;
  • 成员变量width,height:保存当前敌机的长宽;
  • 成员变量blood:保存敌机血量;
  • 成员变量speed:保存敌机速度;
  • 成员变量cathed:保存敌机当前状态,是否被击中;
  • 构造方法:读取敌机图片在电脑中的位置,将nowplane,dieplane,x,y,width,height赋值,再将其他变量按意愿赋值;
  • move方法:移动当前敌机位置,当敌机位置超出屏幕时重定位敌机位置;
  • out方法:将敌机位置重置,与turn方法一起使用;
  • turn方法:将当前敌机图片变成敌机被击毁的图片;
  • run方法:判定敌机未被击毁执行move方法,敌机被击毁执行turn方法和out方法;

蜜蜂类,继承Thread类,和敌机类类似;

子弹类,继承Thread类:

  • 成员变量bullet:保存子弹图片;
  • 成员变量x,y:保存子弹位置;
  • 成员变量width,height:保存子弹的长宽;
  • 成员变量hero,保存英雄机,从而定位子弹位置,使子弹每次出现在英雄机的位置;
  • move方法:改变子弹位置;
  • cathedEnemyPlane方法:判断子弹与敌机的位置,是否击中,击中则扣血,血扣光将敌机的cathed变量赋值为true;
  • cathedBeer方法:判断子弹与蜜蜂的位置,是否击中,击中则扣血,血扣光将蜜蜂的cathed变量赋值为true;
  • run方法:不断执行move方法;

英雄机类,继承Thread类:

  • 成员变量与之前类相似;
  • change方法:改变当前英雄机图片;
  • run方法:不断运行change方法;

Panl类,继承JPanel:

  • 构造方法:为成员变量蜜蜂类对象,敌机类对象,子弹类对象,英雄机对象赋值;
  • paint方法:进行一次性绘图,将各类对象画出来
  • action方法:开启各类的线程,进行无限循环调用repeat重绘方法和cathed方法;
  • cathed方法:将所有的敌机对象和子弹进行距离判断,将所有蜜蜂对象和子弹进行判断,将所有敌机和英雄机进行距离判断,实际上就是调用子弹的cathed方法,将敌机,蜜蜂对象传进去。
后续

如有需要代码,可以留言,人数多我就发一份。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值