public static final int XSPEED = 5; public static final int YSPEED = 5;
private int x, y;
private boolean bL = false, bU = false, bR = false, bD = false; enum Direction {L, LU, U, RU, R, RD, D, LD, STOP};
private Direction dir = Direction.STOP;
public Tank() {}
public Tank(int x, int y) { this.x = x; this.y = y; }
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 void drawTank(Graphics g) { Color c = g.getColor(); g.setColor(Color.RED); g.fillOval(x, y, 30, 30); g.setColor(c); move(); }
void move() { switch(dir) { case L: x -= XSPEED; break; case LU: x -= XSPEED; y -= YSPEED; break; case U: y -= YSPEED; break; case RU: x += XSPEED; y -= YSPEED; break; case R: x += XSPEED; break; case RD: x += XSPEED; y += YSPEED; break; case D: y += YSPEED; break; case LD: x -= XSPEED; y += YSPEED; break; case STOP: break; } }
public static final int XSPEED = 10; //每一次移动的位移量X public static final int YSPEED = 10; //每一次移动的位移量Y
private int x,y; //子弹坐标 Tank.Direction dir; //子弹飞行的方向
public Missile(int x, int y, Tank.Direction dir) { this.x = x; this.y = y; this.dir = dir; }
public void draw(Graphics g) { Color c = g.getColor(); g.setColor(Color.BLACK); g.fillOval(x, y, 10, 10); g.setColor(c);
move(); }
private void move() { switch(dir) { case L: x -= XSPEED; break; case LU: x -= XSPEED; y -= YSPEED; break; case U: y -= YSPEED; break; case RU: x += XSPEED; y -= YSPEED; break; case R: x += XSPEED; break; case RD: x += XSPEED; y += YSPEED; break; case D: y += YSPEED; break; case LD: x -= XSPEED; y += YSPEED; break; }