【问题标题】:Android 2 keys at a timeAndroid 一次 2 个键
【发布时间】:2011-12-15 08:21:03
【问题描述】:

我是 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);

}

【问题讨论】:

    标签: android


    【解决方案1】:

    编辑:也许这会有所帮助? How do I handle simultaneous key presses in Java?

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

    编辑 2:我还发现此链接可能有用: How do I handle multiple key presses in a Java Applet?

    【讨论】:

    • KeyCode 一次只有一个值,所以如果我们按两个键,我们应该有 2 个值,这在 switch 情况下是不可能的,我也使用 use if else 但仍然不起作用。
    • 每个按键应该只触发一个按键事件,所以每个事件应该只有一个按键代码......或者?
    • 是否有任何其他功能()或任何其他技术可以做到这一点(一次按两个键)??
    • 我不确定。要找出答案,您可以创建一个简单的 while 循环,不断打印出您正在按下的键。然后,您可以查看在按下第一个键时第二个键事件是否通过。如果它通过你应该没问题。如果不是,您可能需要重新考虑游戏玩法:/
    • 也许这对你有帮助? stackoverflow.com/questions/752999/…
    【解决方案2】:

    还请检查动作事件(event.getAction())。这将返回 KeyEvent 类中定义的常量,例如 ACTION_DOWNACTION_UP 等。请检查向上或向下操作。

    【讨论】:

    • ACTION_DOWN,当它被按下时将适用于每个键。我需要自己选择 2 把钥匙。像左键、右键和任何其他开火键。
    猜你喜欢
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 2014-01-24
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多