使用 GameCanvas 获取 J2ME 中的按键

发布于 2024-08-15 19:17:57 字数 269 浏览 4 评论 0原文

我想知道(例如)是否按下了 3 键 (KEY_NUM3)。
我已尝试 getKeyStates 但它仅检测游戏操作键。
如何获取非游戏操作键的状态?
(我已经重写了 Canvas 的 keyPressedkeyReleased 函数,并将按键状态存储在数组中(我使用 Vector 来存储,但是我认为也可以将它们存储在数组中,如果这是问题的话),但这似乎不是很好)

I would like to get whether (for example) the 3 key is pressed (KEY_NUM3).
I have tried getKeyStates but it only detects the game action keys.
How could I get the states of non-game action keys?
(I have overridden the keyPressed and keyReleased functions of Canvas and storing the key states in an array (I'm using a Vector for storing but I think could store them in an array too, if that's the problem), but this does not seem to be very nice)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅的被狗咬 2024-08-22 19:17:57

在您的按键中使用像这样传入的 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;
    }
}

in your keypressed use the keyCode passed in like so

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;
    }
}
一直在等你来 2024-08-22 19:17:57

我想这可以是
类似于下面的代码

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

I suppose that can be
something like the code below

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

but can be

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

//you can set the super() to true in the constructor
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文