Получайте нажатия клавиш в J2ME с помощью GameCanvas

StackOverflow https://stackoverflow.com/questions/1962059

  •  21-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

при нажатии клавиши используйте 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;
    }
}

Другие советы

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

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top