Android一次两个键

Android一次两个键,android,Android,我是android开发新手,制作了一个简单的游戏,并使用了onKeyDown(…)功能,但它一次只适用于1个键,如何一次处理2个键意味着我可以连续地向右或向左移动 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub switch (keyCode){ case KeyEvent.KEYCODE_DPAD_RIGHT:

我是android开发新手,制作了一个简单的游戏,并使用了onKeyDown(…)功能,但它一次只适用于1个键,如何一次处理2个键意味着我可以连续地向右或向左移动

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    switch (keyCode){
    case KeyEvent.KEYCODE_DPAD_RIGHT:

        bottle_movx+=2;

    break;
    case KeyEvent.KEYCODE_DPAD_LEFT:

        bottle_movx-=2;
        break;

    case KeyEvent.KEYCODE_DPAD_DOWN:
        fire=bottle_movx;
        firechk=true;
        break;      

    }

    invalidate();
    return super.onKeyDown(keyCode, event);

}

编辑:也许这会有所帮助?

引述: 一种方法是跟踪自己当前按下的键。 当您获得按键事件时,将新按键添加到列表中;当您获得keyReleased事件时,请从列表中删除该密钥。 然后在游戏循环中,您可以根据键列表中的内容执行操作

编辑2:我还发现这个链接可能很有用:

请同时检查操作事件(
event.getAction()
)。这将返回KeyEvent类中定义的常量,如
ACTION\u DOWN
ACTION\u UP
等。请检查UP或DOWN操作。

KeyCode一次只有一个值,因此如果按两个键,我们应该有两个值,这在开关情况下是不可能的,我也使用use if else,但仍然不起作用。每个键应该只触发一个键事件,因此每个事件应该只有一个键代码……或者?是否有其他函数()或任何其他技术来执行此操作(一次按两个键)?我不确定。为了找到答案,你可以创建一个简单的while循环,不断打印出你按下的键。然后,您可以查看在按下第一个键时第二个键事件是否成功。如果通过了,你应该没事。如果没有,也许你需要重新考虑游戏性:/也许这可以帮助你?按下时,每个键的操作都有效。我需要两把我自己选择的钥匙。如左、右和任何其他消防钥匙。