使用GameCanvas在J2ME中获取按键

时间:2009-12-25 22:03:46

标签: java-me keypress midp lcdui

我想知道是否(例如)按下了3键(KEY_NUM3) 我试过getKeyStates,但它只检测游戏操作键 我如何获得非游戏动作键的状态?
(我已经覆盖了Canvas的keyPressedkeyReleased函数,并将关键状态存储在一个数组中(我使用Vector进行存储,但我认为可以将它们存储在一个数组中,如果这是问题),但这似乎不是很好)

2 个答案:

答案 0 :(得分:3)

在你的按键使用中传递的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;
    }
}

答案 1 :(得分:-1)

我想可以 类似下面的代码

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