Получайте нажатия клавиш в J2ME с помощью GameCanvas
Вопрос
Я хотел бы узнать, нажата ли (например) клавиша 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
Не связан с StackOverflow