2012-11-08 5 views
0

2 명이 즐길 수있는 간단한 Pong 게임을하려고합니다.여러 번 반복되는 keyDown 검색

첫 번째 패드는 A와 Q (아지 타키 키보드)로 패드를 제어합니다. 두번째는 P 그의 패드를 제어하고, M.

여기

function handleKeyDown(e) { 
    switch (e.keyCode) { 
     case KEYCODE_ESC: 
      break; 
     case KEYCODE_UP: 
      p1Bitmap.y = p1Bitmap.y - 10; 
      break; 
     case KEYCODE_DOWN: 
      p1Bitmap.y = p1Bitmap.y + 10; 
      break; 
     case KEYCODE_A: 
      p1Bitmap.y = p1Bitmap.y - 10; 
      break; 
     case KEYCODE_Q: 
      p1Bitmap.y = p1Bitmap.y + 10; 
      break; 
     case KEYCODE_P: 
      p2Bitmap.y = p2Bitmap.y - 10; 
      break; 
     case KEYCODE_M: 
      p2Bitmap.y = p2Bitmap.y + 10; 
      break; 
    } 
} 

문제는 코드 인 M에 플레이어 A의 1 프레스 플레이어 2, 제 플레이어의 키를 무시 될때있다.

여러 키 이벤트가 반복 될 수 있습니까? (플레이어 1 A와 플레이어 2 M의 예를 보려면 AMMAMMAMMAMMAMMAMM 대신 AMMAMMAMAMAMAMAMAMAMETC를 사용하십시오.

그런데 Windows 8 앱 (html/css/js)과 CreateJS에서이 작업을 수행하고 있습니다.

답변

3

해당 이벤트를 감지 할 때까지 이동을 계속할 수 있습니다. keydown으로 이동을 시작하고 keyup까지 멈추지 마십시오.

또한 keydownkeypress과 다릅니다. keydown은 얼마나 오랫동안 키를 누르고 있더라도 한번만 발사됩니다. 반면에 keypress은 문자가 삽입 될 때마다 (또는 삽입 될 때마다) 실행되므로 키를 누르고 있으면 반복되는 이벤트가 표시됩니다.

+0

설명해 주셔서 감사합니다. (이상하게도, 나는 키 누르기 작업을 할 수 없다 ^^하지만 신경 쓰지 않아) – Kalzem

관련 문제