2014-01-30 5 views
7

Я использую библиотеку игр java libgdx, и мне любопытно, могу ли я определить, является ли ключ HELD, а не нажат и отпустить.Libgdx - Проверьте, удерживается ли ключ?

Мне нужно знать это, потому что я буду играть более короткий mp3-файл, если он просто нажат, и более длинный, если он удерживается.

ответ

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

И использовать его как это:

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

... 

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

Вы можете прочитать больше о том, что here.

+2

Это не работает, что, если я хочу подключить две клавиши для удержания событий? Нужно ли делать 'boolean' для каждого возможного ключа? Использование статического метода 'Gdx.input.isKeyPressed' работает для удержания, но должен быть простой способ сделать эту работу с помощью' Interface' – Madmenyo

+0

. В libgdx API для комбинаций клавиш нет ничего более продвинутого. Ты должен сделать это сам. – noone

Смежные вопросы