Libgdx - 检查按键是否被按下?

p32*_*094 7 java html5 cross-platform libgdx

我正在使用java libgdx游戏库,我很好奇,如果我可以判断一个键是否正在被HELD,而不是按下并放手.

我需要知道这一点,因为如果只是按下它我将播放一个较短的mp3文件,如果它被按下则会播放一个较长的mp3文件.

noo*_*one 12

是的,您可以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;
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用它像这样:

MyInputProcessor processor = new MyInputProcessor();
Gdx.input.setInputProcessor(processor);

...

if (processor.keyPressed) {
    // do some stuff
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多相关信息.

  • 这不起作用,如果我想连接两个键来按住事件怎么办?我是否需要为每个可能的键创建一个`boolean`?使用静态`Gdx.input.isKeyPressed`方法可以保存,但应该有一个简单的方法来使用`Interface`来完成这项工作. (2认同)