趣味JAVA实现的植物大战僵尸源码
项目结构:
1.运行界面
*2.主要代码展示:
*
Background.java
package plantsGame;
import java.awt.image.BufferedImage;
public class Background extends Zombies{
static BufferedImage image;
static {
image = loadImage("background.png");//背景图片
}
public Background() {
super(0, 0, 1402, 637);
}
protected void step() {
}
@Override
public BufferedImage getImage() {
// TODO Auto-generated method stub
return null;
}
}
2.Game.java
package plantsGame;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Arrays;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JPanel{
private int score;
Background background = new Background();
Hammer hammer = new Hammer();
Zombies enemy[] = {
new Ordinary(),
new Roadblock(),
new Iron()};
int a = 0;
//画笔
public void paint(Graphics g) {
g.drawImage(background.image, 0, 0, 1400, 600, null);
for(int i=0;i<enemy.length;i++) {
enemy[i].paintObject(g);
}
hammer.paintObject(g);
g.setFont(new Font("Tahoma", Font.BOLD, 20));
g.drawString("SCORE:"+score,1200,550);//画分数
g.drawString("AUTHOR:"+"烧包哥哥",1200,570);//作者
if(space==false) {
g.setFont(new Font("Tahoma", Font.BOLD, 80));
g.drawString("STOP",620,640/2);//画分数
}
}
//随即生成僵尸
public Zombies enemyRandom() {
a = (int) (Math.random()*20);
if(a<=12) {
return new Ordinary();
}else if(a>12&&a<=17) {
return new Roadblock();
}else {
return new Iron();