话不多说,先来看看效果图
这个java实现的飞机大战小游戏可以用鼠标控制飞机的移动也可以使用键盘控制上下左右
在不同的分数段,飞机的子弹也不一样,不过击杀每个飞机的分数是一样,你可以自己修改每个飞机的分数
如果只想要素材,不要代码的可以到这里去拿:https://download.csdn.net/download/liang13654/12609460
我使用的是IDEA软件,你需要在src下新建两个包,img和ui(当然,这两个包的名字可以随便命名),然后把素材放到img里
接下来就是部分代码了
peizhi.java
package ui;
import java.awt.image.BufferedImage;
public class peizhi {
//窗口名字
public static String NAME= "飞机大战";
//背景图片路径
public static String img="/img/bg1.jpg";
//我方飞机图片路径
public static String img2="/img/wo.png";
//敌方飞机图片路径1
public static String di1="/img/di1.png";
//敌方飞机图片路径2
public static String di2="/img/di2.png";
//我方飞机子弹图片路径1
public static String zi="/img/wozi.png";
//爆炸效果的图片路径1
public static String bao="/img/bao.png";
//爆炸效果的音效路径1
//public static String bomb="/src/img/bomb.wav";
//窗口宽度
public static int Width=600;
//窗口高度
public static int Height=800;
}
在paizhi有爆炸效果图以及音效,不过我没有搞这个,如果有兴趣的话你们可以搞搞
Hero.java`
package ui;
import java.awt.image.BufferedImage;
//我方飞机
public class Hero extends Fly{
int hp;
public Hero(){
//确定游戏开始时,显示我方飞机的图片
img=App.getImge(peizhi.img2);
//确定我方飞机的大小
w=img.getWidth();
h=img.getHeight();
//确定我方飞机在游戏开始时的位置
x=(peizhi.Width-w)/2;
y=peizhi.Height-h*2;
//游戏开始时我方飞机的血量
hp=3;
}
//让飞机移动到鼠标位置上的方法
public void moveToMouse(int mx,int my){
x=mx-w/2;
y=my-h/2+10;
}
//上
public void moveUp(){
y-=10;
if(y<0){
y=0;
}
}
//下
public void moveDown(){
y+=10;
if(y>(peizhi.Height-h*3/2)){
y=peizhi.Height-h*3/2;
}
}
//左
public void moveLeft(){
x-=10;
if(x<0){
x=0;
}
}
//右
public void moveRight(){
x+=10;
if(x>(peizhi.Width-w-15)){
x=peizhi.Width-w-15;
}
}
}
Ep.java
package ui;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Ep extends Fly {
//敌机速度
int sp;
int hp;
//构造器:给敌机定型
public Ep(){
//定义随机数
Random rd=new Random();
//生成随机数来选取图片
int index=rd.nextInt(4)+1;
hp=index;
//确定敌机显示的图片
img=App.getImge("/img/di"+index+".png");
//确定敌机的大小
w=img.getWidth();
h=img.getHeight();
//确定敌机的位置
x=rd.nextInt