当前位置: 代码迷 >> Eclipse >> JAVA中关于枚举,该如何解决
  详细解决方案

JAVA中关于枚举,该如何解决

热度:66   发布时间:2016-04-23 00:21:22.0
JAVA中关于枚举
在坦克大战中,实现八个方向的移动的时候,使用枚举类型,编译器却报错,直接上代码。
import java.awt.*;
import java.awt.event.*;

public class Tank {
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(int x, int y) {
this.x = x;
this.y = y;
}

public void draw(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;
1 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 void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_LEFT :
bL = true;
break;
case KeyEvent.VK_UP :
bU = true;
break;
case KeyEvent.VK_RIGHT :
bR = true;
break;
case KeyEvent.VK_DOWN :
bD = true;
break;
}
locateDirection();
}

void locateDirection() {
if(bL && !bU && !bR && !bD) dir = Direction.L;
else if(bL && bU && !bR && !bD) dir = Direction.LU;
else if(!bL && bU && !bR && !bD) dir = Direction.U;
else if(!bL && bU && bR && !bD) dir = Direction.RU;
else if(!bL && !bU && bR && !bD) dir = Direction.R;
else if(!bL && !bU && bR && bD) dir = Direction.RD;
else if(!bL && !bU && !bR && bD) dir = Direction.D;
else if(bL && !bU && !bR && bD) dir = Direction.LD;
else if(!bL && !bU && !bR && !bD) dir = Direction.STOP;
}
}

------解决思路----------------------
 case RU:
                x += XSPEED;
                y -= YSPEED;
                1 break;

这边多了个1
  相关解决方案