2012-08-15 4 views
0

내 게임에서 나는 게임 중에 언제든지 플레이어가 휴대 전화를 흔들고 싶을 때마다 모든 쉐이크가 무기를 전환하게됩니다.안드로이드 코드 흔들림

예 : 플레이어에 나이프가 있고, 전화가 흔들리고 katana로 전환됩니다. 문제가

if (accelerometer.x >= 5 || accelerometer.x <= -5 || accelerometer.y >= 5 
    || accelerometer.y <= -5 || accelerometer.z >= 5 || accelerometer.z <= -5) 
    switchWep();   

이 작품은, 은 플레이어가 두 번 무기를 전환 가끔 전화를 흔들 .When 부작용있다. 그래서 큰 흔들림이 생기면 게임이 무기 0에서 무기 2로 전환되지 않도록 제한하려고합니다.

도와주세요.

답변

3

간단한 시간 제한을 적용하면 서로 2 회 전환 할 수 없습니다. 나는 1 초 - 500 밀리 초가 더블 스위치를 피하기에 충분할 것이라고 생각한다.

편집 : 이 작업을 수행 할 수는 있지만 가장 최적이거나 안전한 방법은 아닙니다.

protected void shake() { 
    if(mAllowShake) { 
     mAllowShake = false; 

     // do shake 

     Handler handler = new Handler() { 
      @Override 
      public void handleMessage(Message msg) { 
       mAllowShake = true; 
      } 
     }; 

     handler.sendMessageDelayed(null, 500); // time in milliseconds 
    } 
} 
+0

나는 이것을 생각했다. 그러나 이것은 나의 첫번째 안드로이드 게임이다. 기다려야한다고 어떻게 말합니까? – katrina

+0

이로 인해 앱이 휴대 전화에서 중단됩니다. – katrina

+0

@katrina 간격을 늘리려고 했습니까? – Warpzit

0

.5를 더 높게 변경할 수 있습니다.