2011-12-15 4 views
1

나는 간단한 게임을 만들고 onKeyDown (.....) 기능을 사용하여 안드로이드 개발에 익숙하지만 한 번에 1 개의 키, 한 번에 2 개의 키를 처리하는 방법 내가 계속 발사하면서 오른쪽 또는 왼쪽으로 이동할 수 있음을 의미합니다.한 번에 안드로이드 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?

인용구 : 한 가지 방법은 키가 현재 아래로 무엇의 자신을 추적 유지하는 것입니다. keyPressed 이벤트가 발생하면 새 키를 목록에 추가하십시오. keyReleased 이벤트가 발생하면 목록에서 해당 키를 제거하십시오. 그런 다음 게임 루프에서 키 목록에있는 작업을 기반으로 작업을 수행 할 수 있습니다.

편집 2 : 는 How do I handle multiple key presses in a Java Applet?

+0

KeyCode는 한 번에 하나의 값을 가지므로 두 개의 키를 누르면 스위치의 경우에는 불가능한 2 개의 값을 가져야합니다. 다른 경우에는 사용하지만 여전히 작동하지 않습니다. – Raaz

+0

각 키는 하나의 키 이벤트 만 트리거해야하므로 각 이벤트에 대해 하나의 키 코드 만 있어야합니다 ... 또는? – span

+0

다른 기능() 또는 이것을 수행하는 다른 기술 (한 번에 두 개의 키 누르기)이 있습니까 ?? – Raaz

0

또한 액션 이벤트 (event.getAction())를 확인하시기 바랍니다 : 나는 또한 도움이 될 수있는이 링크를 발견했다. 이것은 ACTION_DOWN, ACTION_UP 등의 KeyEvent 클래스에 정의 된 상수를 리턴합니다. 위 또는 아래 조치를 점검하십시오.

+0

ACTION_DOWN, 모든 키를 누를 때 작동합니다. 내 선택의 열쇠 2 개를 가져와야 해. 왼쪽, 오른쪽 및 다른 모든 화재 키와 같은 – Raaz

관련 문제