java项目之——坦克大战09

问题:由于上一个版本的方向控制出现一个问题,比如向右走,然后向下走,不过此时坦克将不会向下走,而是向右下走,而且是一去不回头。

          功能:实习坦克八个方向运动(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();
	}

总结:主要思想是按键的抬起,而不是用修改代码实现方向的改变

你可能感兴趣的:(java后台--稳健)