java飞机大战强化版_java飞机大战升级版源码(全彩,背景音乐,各种音效,不同僚机,子弹特效以及技能系统)...

【实例简介】

这是一个加强版本的飞机大战,全彩界面,有僚机系统,5种僚机子弹效果不同,激光,散弹,机关枪,跟踪弹,导弹,有暴走技能及必杀技能,有等级系统,有BOSS,背景音乐课切换,释放技能有音效,杀敌爆水晶,可购买武器升级和切换僚机,够吗必杀数量,开发环境是eclipse+JDK1.7

【实例截图】

【核心代码】

打飞机_修正版

└── flyGame

└── flyGame

├── bin

│   ├── airplane

│   │   ├── AIR010DL.class

│   │   ├── AIR010SL.class

│   │   ├── AIR010SS.class

│   │   ├── AIR020DL.class

│   │   ├── AIR021DL.class

│   │   ├── AIR031TL.class

│   │   ├── AIR041SL.class

│   │   ├── AIR051DL.class

│   │   ├── Airplane.class

│   │   ├── Enemy.class

│   │   └── boss01.class

│   └── show

│   ├── Aircraft.class

│   ├── Award.class

│   ├── Background.class

│   ├── Bee.class

│   ├── BeeMoney.class

│   ├── BeeMoneys.class

│   ├── Bomb.class

│   ├── Bomb0.class

│   ├── Bomb0s.class

│   ├── Bullet.class

│   ├── BulletA.class

│   ├── BulletH.class

│   ├── FlyObject.class

│   ├── Game$1.class

│   ├── Game$2.class

│   ├── Game$3.class

│   ├── Game$4.class

│   ├── Game.class

│   ├── HP.class

│   ├── Hero.class

│   ├── Hps.class

│   ├── Money.class

│   ├── Planet.class

│   ├── SP.class

│   └── Sps.class

├── img

│   ├── AIR010SL.png

│   ├── AIR010SS.png

│   ├── AIR020DL.png

│   ├── AIR021DL.png

│   ├── AIR031TL.png

│   ├── AIR041SL.png

│   ├── HP.png

│   ├── SP.png

│   ├── air051dl.png

│   ├── airplane.png

│   ├── background.jpg

│   ├── bee.png

│   ├── beeMoney.png

│   ├── bird.png

│   ├── bomb.png

│   ├── bomb0.png

│   ├── bomb1.png

│   ├── bomb2.png

│   ├── bomb3.png

│   ├── boss.png

│   ├── bullet.png

│   ├── bullet1.png

│   ├── bullet2.png

│   ├── bulleth.png

│   ├── bulleth1.png

│   ├── bulleth2.png

│   ├── daodan.png

│   ├── gameover.png

│   ├── hero0.png

│   ├── hero1.png

│   ├── jiguang.png

│   ├── jiguang1.png

│   ├── jiguang2.png

│   ├── jiguang3.png

│   ├── jingshi.png

│   ├── jiqiang.png

│   ├── money.png

│   ├── npc.png

│   ├── pause.png

│   ├── planet.png

│   ├── sandan.png

│   ├── score.png

│   ├── show.png

│   ├── start.png

│   ├── tian.png

│   ├── wan.png

│   ├── xiang.png

│   └── yin.png

├── lib

│   ├── jl1.0.1.jar

│   └── mhdt.jar

├── music

│   ├── He's A Pirate.mp3

│   ├── TheDawn.mp3

│   ├── bingdu.mp3

│   ├── bosswaring.mp3

│   ├── energyfull.mp3

│   ├── showbomb.mp3

│   ├── shuijing.mp3

│   ├── upgrade0.mp3

│   └── wangzi.mp3

└── src

├── airplane

│   ├── AIR010DL.java

│   ├── AIR010SL.java

│   ├── AIR010SS.java

│   ├── AIR020DL.java

│   ├── AIR021DL.java

│   ├── AIR031TL.java

│   ├── AIR041SL.java

│   ├── AIR051DL.java

│   ├── Airplane.java

│   ├── Enemy.java

│   └── boss01.java

└── show

├── Aircraft.java

├── Award.java

├── Background.java

├── Bee.java

├── BeeMoney.java

├── BeeMoneys.java

├── Bomb.java

├── Bomb0.java

├── Bomb0s.java

├── Bullet.java

├── BulletA.java

├── BulletH.java

├── FlyObject.java

├── Game.java

├── HP.java

├── Hero.java

├── Hps.java

├── Money.java

├── Planet.java

├── SP.java

└── Sps.java

11 directories, 127 files

package cn.feike.shoot; import java.awt.Graphics; import java.awt.image.BufferedImage; public abstract class FlyingObject { protected double x;//物体的x坐标 protected double y;//物体的y坐标 protected double width;//物体的宽 protected double heigth;//物体的高 protected BufferedImage image;//当前正在显示的图片 protected int index = 0;//图片数组下标序号,子类中使用 protected double step;//飞行物每次(1/24秒)移动的距离 protected int life;//命 protected int state;//飞行物的状态 public static final int ACTIVE=0;//活着状态 public static final int DEAD=1;//死亡状态 public static final int REMOVE=2;//回收状态 //默认构造器 public FlyingObject() { life = 1; state = ACTIVE; } //有参构造器 public FlyingObject(double width,double heigth){ this();//调用无参数的构造器,必须写在第一行. this.x = (int)(Math.random()*(480-width)); this.y = -heigth; this.width = width; this.heigth = heigth; step = Math.random()*3+0.8;//初始化step为[0.8,3.8)之间的数 } //重写toString方法 public String toString() { return x+","+y+","+width+","+heigth+","+image; } //重写paint,方便子类对象的使用 public void paint(Graphics g) { g.drawImage(image, (int)x, (int)y, null);//绘制图片 } //飞行物移动的move方法 /** * 重构了move,方法实现播放销毁动画功能 */ public void move(){ if(state == ACTIVE){ y += step; return ; } if(state == DEAD){ //从子类对象中获取下一张照片 BufferedImage img = nextImage(); if(img == null){ state = REMOVE;//没有照片则回收 }else{ image = img;//否则把子类的图片传给image } //越界则销毁 if(y>=825){ state = REMOVE; } } } /** * 子类中必须有的方法,返回下一个要播放的照片引用, * 如果返回null表示没有可播放的照片了. */ protected abstract BufferedImage nextImage(); /** * 飞行物被打了一下 */ public void hit(){ if(life>0){ life--; } if(life==0){ state = DEAD; } } /** * 碰撞检测的方法 * 检测物体的位置是否在碰撞的范围内. * (子弹是否在飞行物的碰撞范围内) */ public boolean duang(FlyingObject obj){ //this(x,y,w,h) //obj(x,y,w,h) double x1 = this.x - obj.width; double x2 = this.x + this.width; double y1 = this.y - obj.width; double y2 = this.y + this.heigth; return x1<obj.x&&obj;.x<x2&&y1;<obj.y&&obj;.y<y2; } /** 重构FlyingObject,添加了状态检查方法 */ /** 检查飞行物死了吗 */ public boolean isDead(){ return state == DEAD; } /** 检查飞行物是否活动的 */ public boolean isActive(){ return state == ACTIVE; } /** 检查飞行是否可以被删除*/ public boolean canRemove(){ return state == REMOVE; } /** 飞行物添加"去死"方法*/ public void goDead(){ if(isActive()){ state = DEAD; } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值