问题:由于上一个版本的方向控制出现一个问题,比如向右走,然后向下走,不过此时坦克将不会向下走,而是向右下走,而且是一去不回头。
功能:实习坦克八个方向运动(2)
内容:创建键盘抬起监听,每次抬起坦克将会使坦克脱离按键控制。
1.在tankClient中
public void keyReleased(KeyEvent e) {
myTank.keyReleased(e);
}
2.在tank中
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
switch(key){
case KeyEvent.VK_LEFT: bL=false; break;
case KeyEvent.VK_UP: bU=false; break;
case KeyEvent.VK_RIGHT: bR=false; break;
case KeyEvent.VK_DOWN: bD=false; break;
}
locateDirection();
}
就是将keyPressed的false改为true
下面是对比:
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();
}
总结:主要思想是按键的抬起,而不是用修改代码实现方向的改变