一、项目概要:
基于Java Swing飞机大战游戏,打死飞机,可以随机出现加血包、子弹升级包。并支持根据游戏的分数,调整游戏难度。
二、界面展示:
三、主要代码:
package com.maoxu.jet;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
public class GameStart extends JFrame{
MyPlane mp = new MyPlane();
public GameStart() {
this.setSize(600, 700);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setLayout(new BorderLayout());
this.setVisible(true);
PicsUtil.JFRAME_WIDTH = this.getContentPane().getWidth();
PicsUtil.JFRAME_HEIHGT = this.getContentPane().getHeight();
this.add(mp);
this.addKeyListener(new MyKeyAdapter());
//System.out.println(this.getContentPane().getWidth());
//System.out.println(this.getContentPane().getHeight());
}
class MyKeyAdapter extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
if(e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_W){
mp.dir_up = true;
}else if(e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S){
mp.dir_down = true;
}if(e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_A){
mp.dir_left = true;
}else if(e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_D){
mp.dir_right = true;
}
}
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_L){
MyPlane.bulletLevel++;
if(MyPlane.bulletLevel > 4){
if(mp.playerBulletNum < 5){
mp.playerBulletNum ++;
}else{
MyPlane.bulletLevel = 1;
}
}
}if(e.getKeyCode() == KeyEvent.VK_P){
if(mp.player != null){
if(mp.player.bomb < 5)
mp.player.bomb ++;
}
}if(e.getKeyCode() == KeyEvent.VK_O){
if(mp.player != null){
if(mp.player.HP < 99)
mp.player.HP += 10;
}
}
if(e.getKeyCode() == KeyEvent.VK_B){
PicsUtil.BGI ++;
mp.BGISpeed = 30;
if(PicsUtil.BGI > 2){
PicsUtil.BGI = 1;
mp.BGISpeed = 1;
}
mp.BGI0 = PicsUtil.pics.get("background"+PicsUtil.BGI+".bmp");
mp.BGI1 = mp.BGI0;
mp.BGI0drag = 0;
mp.BGI1drag = 0 - mp.BGI0.getHeight();
}
if(e.getKeyCode() == KeyEvent.VK_K){
if(mp.player == null){
mp.player = new Jet(PicsUtil.JET_PLAYER);
//mp.score = 0;
MyPlane.bulletLevel = 1;
mp.player.isDeaing = false;
mp.new MoveThread().start();
mp.new FireThread().start();
mp.new IntersectsThread().start();
/*if(mp.boss == null){
mp.showBossScore = PicsUtil.getRandom(10, 15)*100;
System.out.println("BOSS下次出场分数:"+mp.showBossScore);
}*/
}
}
if(e.getKeyCode() == KeyEvent.VK_M){
mp.BGISpeed ++;
}if(e.getKeyCode() == KeyEvent.VK_N){
mp.BGISpeed --;
if(mp.BGISpeed <= 0){
mp.BGISpeed = 1;
}
}if(e.getKeyCode() == KeyEvent.VK_J){
if(mp.player != null){
mp.player.HP = 0;
}
}
if(e.getKeyCode() == KeyEvent.VK_SPACE){
mp.new killEveryOne().start();
}
if(e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_W){
mp.dir_up = false;
}else if(e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S){
mp.dir_down = false;
}if(e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_A){
mp.dir_left = false;
}else if(e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_D){
mp.dir_right = false;
}
};
}
public static void main(String[] args) {
new GameStart();
}
}
四、其它项目:
五、获取方式:
有需要可以加QQ:571328502 或者 点击下载
六、心灵寄语:
想要赢,就一定不能怕输。不怕输结果未必能赢,但是怕输,结果则是一定输。