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

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

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

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

实现键盘监听

在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;
        }
    }
}

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

参考资料


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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理