2011-11-21 5 views
1

Android 용 미니 게임을 작업 중입니다. 클릭하고있는 버튼을 클릭하면 일정 시간 간격으로 한 번 이벤트가 발생해야합니다.Android on key down

public boolean onKeyDown(int keyCode, KeyEvent msg) { 
    if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { 
     moveLeft(); 
     return (true); 
    } 

    if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { 
     moveRight(); 
     return (true); 
    } 
} 

이 코드는 내 키보드에서 시뮬레이터와 화살표를 사용하는 경우에 작동합니다. 또한 레이아웃에 2 개의 버튼을 놓았으며, 이제는 버튼이 일정 시간 간격으로 터치 될 때 왼쪽이나 오른쪽으로 움직이는 것과 동일한 효과를 원합니다. 어떻게하면됩니까?

+0

"시간 간격으로"의미하는 것이 무엇인지 자세히 설명해 주시겠습니까? – Polynomial

답변

2

어떤 버튼이 있습니까? Android 휴대 전화에는 왼쪽 및 오른쪽 버튼이 없습니다.

어쨌든 가장 좋은 방법은 게임 제작 방법에 달려 있습니다. 아마 postDelay 또는 스레드를 사용해야합니다. 키가 너무

new Handler().postDelayed(new Runnable(){ 
     public void run(){ 
      if (movingLeft) //your boolean 
       moveLeft(); 
     } 
    },1000); //time interval in milliseconds 

가 잊지 마세요처럼 다운되었을 때

어쩌면 당신은 postDelay을 키가 다운되면 true로 설정됩니다 부울을 설정하려고 할 때의 최대 허위하고 실행할 수 있습니다 그것을 죽이려면, 당신은 수천의 핸들러를 실행하는 것을 원하지 않을 것입니다. 프로그래밍 게임에 어떤 경험도 없습니다 .. 도움이되기를 바랍니다.

+0

감사합니다. 저는 postDelayed와 함께 작업 할 수 있습니다. –

+0

내가 도울 수있어서 기쁩니다! 정답으로 표시해 주시겠습니까? :) – Joe