2011-12-15 47 views
1

我是新android開發,製作一個簡單的遊戲,使用的onkeydown(.....)的功能,但它僅適用於在同一時間1個關鍵,如何同時處理2個鍵意味着我可以連續射擊向右或向左移動。Android的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); 

} 

回答

2

編輯:也許這可能有一些幫助? How do I handle simultaneous key presses in Java?

Quote: 一種方法是跟蹤自己什麼鍵當前關閉。 當您得到keyPressed事件時,將新密鑰添加到列表中;當您收到keyreleased事件時,請從列表中刪除密鑰。 然後在您的遊戲循環中,您可以根據鍵列表中的內容執行操作。

編輯2:我也發現了這個鏈接,可能是有用的: How do I handle multiple key presses in a Java Applet?

+0

邀請碼將有一個價值的時間,所以如果我們按下兩個鍵,我們應該有2個值這是不是在開關的情況下有可能,我也用使用的if else,但仍然沒有工作。 – Raaz 2011-12-15 08:50:04

+0

每個鍵只能觸發一個關鍵事件,所以每個事件應該只有一個鍵碼,但......或? – span 2011-12-15 09:05:02

0

也請您查看操作事件(event.getAction())。這將返回該KeyEvent類中定義的常量像ACTION_DOWNACTION_UP等,請檢查向上或向下的動作。