【问题标题】:Libgdx - Check if a key is being held down?Libgdx - 检查一个键是否被按住?
【发布时间】:2014-01-30 17:57:03
【问题描述】:

我正在使用 java libgdx 游戏库,我很好奇我是否可以判断一个键是否被按住,而不是按下并松开。

我需要知道这一点,因为如果按下它,我将播放一个较短的 mp3 文件,如果按住它,我将播放一个较长的文件。

【问题讨论】:

    标签: java html cross-platform libgdx


    【解决方案1】:

    是的,您可以通过Gdx.input.isKeyPressed(Input.Keys.XXX) 或通过实现InputProcessor 轻松检查它们。

    public class MyInputProcessor implements InputProcessor {
    
        public boolean keyPressed;
    
        @Override
        public boolean keyDown(int keycode) {
            if (keycode == Input.Keys.XXX) {
                keyPressed = true;
            }
    
            return false;
        }
    
        @Override
        public boolean keyUp(int keycode) {
            if (keycode == Input.Keys.XXX) {
                keyPressed = false;
            }
    
            return false;
        }
    }
    

    并像这样使用它:

    MyInputProcessor processor = new MyInputProcessor();
    Gdx.input.setInputProcessor(processor);
    
    ...
    
    if (processor.keyPressed) {
        // do some stuff
    }
    

    您可以阅读更多关于 here 的信息。

    【讨论】:

    • 这不起作用,如果我想连接两个键来按住事件怎么办?我需要为每个可能的键创建一个boolean 吗?使用静态Gdx.input.isKeyPressed 方法可用于保持,但应该有一种简单的方法可以使用Interface
    • 在 libgdx API 中没有什么比组合键更高级的了。你必须自己做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    相关资源
    最近更新 更多