接上一节,让坦克随心所欲走。
定义一个方向的枚举,上下左右:
package com.tavon.tank;
public enum Dir {
LEFT , UP , RIGHT , DOWN
}
初始方向随便给一个:
Dir dir= Dir.DOWN; 设置为全局变量
在按上下左右的时候,就要变方向:
定义如下方法:
private void setMainTankDir(){
if(bl) dir= Dir.LEFT;
if(bu) dir= Dir.UP;
if(br) dir= Dir.RIGHT;
if(bd) dir= Dir.DOWN;
}
在按键后要调用,同时注意这个方法要写在内部类中。
接下来就要关注:按下方向键,在该方向上如何移动,定义速度,每按键一次移动多少距离。
switch(dir){
case LEFT:
x-=SPEED;
break;
case UP:
y-=SPEED;
break;
case RIGHT:
x+=SPEED;
break;
case DOWN:
y+=SPEED;
break;
}
注意:上述代码写在:graphics.fillRect(x, y, 50, 50);该行代码的前面 否则先画坦克的位置,再计算位置,就反了,应该是先计算好坦克的位置,然后再绘画。