关于java:我所知道坦克大战单机版之使用键盘控制改变坦克位置

41次阅读

共计 953 个字符,预计需要花费 3 分钟才能阅读完成。

咱们发现前两篇文章所造成的坦克,他只能固定一个方向进行挪动

那么对于咱们来说,个别要么应用鼠标,要么应用键盘管制

那么咱们怎么实现这样的形式呢?

实现键盘监听

在 java 中咱们应用键盘监听的话有两种形式:接口、抽象类

接口用于接管键盘事件(击键)的侦听器。

若解决键盘事件的类实现此接口(及需实现蕴含的所有办法),即便不须要

若解决键盘事件的类继承形象 KeyAdapter 类(则能够仅重写有用的办法)

public void keyReleased(KeyEvent e)
开释某个键时调用此办法。public void keyPressed(KeyEvent e)
按下某个键时调用此办法。public void keyTyped(KeyEvent e)
键入某个键时调用此办法。

咱们抉择外部类实现键盘按下的形式进行监听测试,同时将监听器增加进来

// 继承抽象类实现键盘监听
private class KeyMonitor extends KeyAdapter{
    @Override
    public void keyPressed(KeyEvent e) {System.out.println("ok");
    }
}
// 定义窗口办法
public void lauchFrame() {
    
    // 省略其余关键性代码.....

    // 增加监听器
    this.addKeyListener(new KeyMonitor());
}

运行 main 办法,同时按下键盘看看是否有输入后果,测试胜利

若咱们想只应用上下左右键管制坦克进行上下左右方向的管制

则咱们须要先获取到按下的键盘 key 编码,进行匹配

// 继承抽象类实现键盘监听
private class KeyMonitor extends KeyAdapter {
    @Override
    public void keyPressed(KeyEvent e) {int key = e.getKeyCode();
        switch (key) {
            case KeyEvent.VK_LEFT:
                x -= 5;
                break;
            case KeyEvent.VK_UP:
                y -= 5;
                break;
            case KeyEvent.VK_RIGHT:
                x += 5;
                break;
            case KeyEvent.VK_DOWN:
                y += 5;
                break;
        }
    }
}

这时咱们运行起键盘的↑↓←→ 则能够批改操控坦克圆点的地位了

参考资料


尚学堂:坦克大战(马士兵老师)

正文完
 0