Libgdx - Check if a key is being held down?

2020-08-26 11:25发布

问题:

I'm using the java libgdx game library and im curious if I can tell if a key is being HELD, not pressed and let go.

I need to know this because I'm going to play a shorter mp3 file if it is just pressed and a longer one if it is held.

回答1:

Yes, you can easily check they either via Gdx.input.isKeyPressed(Input.Keys.XXX) or by implementing an 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;
    }
}

And using it like this:

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

...

if (processor.keyPressed) {
    // do some stuff
}

You can read more about that here.