为了使敌方的坦克有简单的AI功能,那么必须将tank类结构进行重构。
父类:Tank,子类:MyTank,EnemyTank.
package tank;
import java.awt.*;
public class MyTank extends Tank{
private static Image[] tankImg;
static {
tankImg = new Image[4];
tankImg[0]=Toolkit.getDefaultToolkit().createImage("res/u.png");
tankImg[1]=Toolkit.getDefaultToolkit().createImage("res/d.png");
tankImg[2]=Toolkit.getDefaultToolkit().createImage("res/l.png");
tankImg[3]=Toolkit.getDefaultToolkit().createImage("res/r.png");
}
public MyTank(int x, int y, int dir) {
super(x, y, dir);
}
@Override
public void drawImgTank(Graphics g) {
g.drawImage(tankImg[getDir()],getX()-RADIUS,getY()-RADIUS,null );
}
}
package tank;
import game.GameFrame;
import util.Constant;
import util.MyUtil;
import java.awt.*;
public class EnemyTank extends Tank{
private static Image[] enemyImg;
static {
enemyImg = new Image[4];
enemyImg[0]=Toolkit.getDefaultToolkit().createImage("res/ul.png");
enemyImg[1]=Toolkit.getDefaultToolkit().createImage("res/dl.png");
enemyImg[2]=Toolkit.getDefaultToolkit().createImage("res/ll.png");
enemyImg[3]=Toolkit.getDefaultToolkit().createImage("res/rl.png");
}
public EnemyTank(int x, int y, int dir) {
super(x, y, dir);
}
@Override
public void drawImgTank(Graphics g) {
g.drawImage(enemyImg[getDir()],getX()-RADIUS,getY()-RADIUS,null );
}
public static Tank createEnemy(){
int x= MyUtil.getRandomNumber(0,2)==0?RADIUS:
Constant.FRAME_WIDTH-RADIUS;
int y= GameFrame.titleBarh+RADIUS;
int dir=DIR_DOWN;
Tank enemy=new EnemyTank(x,y,dir);
enemy.setEnemy(true);
enemy.setState(STATE_MOVE);
return enemy;
}
}