Получите нажатие клавиш в J2ME с GameCanvas - PullRequest
3 голосов
/ 26 декабря 2009

Хотелось бы узнать, нажата ли (например) клавиша 3 (KEY_NUM3).
Я пробовал getKeyStates, но он обнаруживает только игровые клавиши действий.
Как я могу получить состояния неигровых клавиш действий?
(Я переопределил функции keyPressed и keyReleased Canvas и храню состояния ключей в массиве (я использую Vector для хранения, но я думаю, что можно также сохранить их в массиве, если это проблема) , но это, кажется, не очень приятно)

Ответы [ 2 ]

3 голосов
/ 28 декабря 2009

в вашей нажатой клавише используйте keyCode, передаваемый как

protected void keyPressed(int keyCode)
{
    //try catch  getGameAction as can legally throw an exception
    int gameAction = getGameAction(keyCode);

    switch(gameAction)
    {
        case UP:
            break;
        case DOWN:
            break;
        case LEFT:
            break;
    }

    switch(keyCode)
    {
        case KEY_NUM1:
            break;
        case KEY_NUM2:
            break;
        case KEY_NUM3;
            break;
    }
}
0 голосов
/ 24 февраля 2011

Полагаю, что может быть что-то вроде кода ниже

int key=getKeyStates();
// i mean keyStates();
if((key&down_pressed)!=0)
{
//do movements
}

но может быть

if((key & Canvas.key_num3)!=0)
{
//do something
}

//you can set the super() to true in the constructor
...