飞机大战实现实例:
接口:
package aircraft_war;
public interface AddScore {
int addScore();
}
package aircraft_war;
public interface Award {
void choice();
}
package aircraft_war;
public interface AwardType {
int ADD_FIRE=0;
int LIFE=1;
void choose();
}
父类:
package aircraft_war;
import java.awt.image.BufferedImage;
public abstract class BasicClass {
protected int blood;
protected int y;
protected int x;
protected int width;
protected int height;
protected BufferedImage img;
public BasicClass(){
}
/* private int blood;
public BasicClass(BufferedImage img,int y,int x){
this.img=img;
this.x=x;
this.y=y;
}*/
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public BufferedImage getImg() {
return img;
}
public void setImg(BufferedImage img) {
this.img = img;
}
protected abstract void move();
}
主函数:
package aircraft_war;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
public class Main extends JPanel {
private static int state=0;
private static final int START = 0;
private static final int RUNNING = 1;
private static final int PAUSE = 2;
private static final int GAME_OVER = 3;
static BufferedImage bg=null;
static BufferedImage airPlane=null;
static BufferedImage airPlane0=null;
static BufferedImage airPlane1=null;
static BufferedImage bigPlane=null;
static BufferedImage bee=null;
static BufferedImage bullet=null;
static BufferedImage start=null;
static BufferedImage pause=null;
static BufferedImage gameover=null;
static BufferedImage hero0=null;
static BufferedImage hero1=null;
static BufferedImage boss0=null;
static BufferedImage boss1=null;
static {
try {
bg= ImageIO.read(Main.class.getResourceAsStream("Image/background.png"));
airPlane= ImageIO.read(Main.class.getResourceAsStream("Image/airplane.png"));
airPlane0= ImageIO.read(Main.class.getResourceAsStream("Image/airplane_ember0.png"));
airPlane1= ImageIO.read(Main.class.getResourceAsStream("Image/airplane_ember1.png"));
bigPlane= ImageIO.read(Main.class.getResourceAsStream("Image/bigplane.png"));
bee= ImageIO.read(Main.class.getResourceAsStream("Image/bee.png"));
hero0= ImageIO.read(Main.class.getResourceAsStream("Image/hero0.png"));
hero1= ImageIO.read(Main.class.getResourceAsStream("Image/hero1.png"));
bullet= ImageIO.read(Main.class.getResourceAsStream("Image/bullet.png"));
start= ImageIO.read(Main.class.getResourceAsStream("Image/start.png"));
pause= ImageIO.read(Main.class.getResourceAsStream("Image/pause.png"));
gameover= ImageIO.read(Main.class.getResourceAsStream("Image/gameover.png"));
boss0= ImageIO.read(Main.class.getResourceAsStream("Image/extraplane_n1.png"));
boss1= ImageIO.read(Main.class.getResourceAsStream("Image/extraplane_n2.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
Timer timer=new Timer();
HeroPlane hero=new HeroPlane();
ArrayList<Bullet> bull=new ArrayList<>();
ArrayList<BasicClass> flyings=new ArrayList();
//int count=0;
public void paintState(Graphics g) {
switch (state) {
case START: // 启动状态
g.drawImage(start, 0, 0, null);
break;
/*case RUNNING: // 运行状态
g.drawImage(bg, 0, 0, null);
break;*/