2014-04-19 1 views
1

내 게임 (안드로이드)을위한 진동을 만들려고합니다. 기본적으로 충돌이 발생할 때 진동이 시작되기를 원하지만 내 수준이 실행중인 클래스가 활동 클래스가 아니기 때문에 진동을 생성 할 수 없습니다. 계속하려면 호를 모릅니다. 어떻게해야합니까? 감사.활동이없는 클래스에서 진동 만들기?

답변

2

하지만 클래스를 만들려는 클래스는 활동 오른쪽에서 호출해야합니까? 그런 다음 활동 클래스에서 수행 진동과 같이 진행 할 문제가 없습니다 :

public function vibrate(Context context){ 
    // Get instance of Vibrator from current Context 
    Vibrator v = (Vibrator) getSystemService(context); 

    // Vibrate for 300 milliseconds 
    v.vibrate(300); 
} 
+0

가, 다음은 MAINMENU 화면을 호출하고 그에서 GameScreen, 게임 화면에 진동기를 만들려고 할 때 "getSystemService (String) 메서드가 GameScreen 유형에 대해 정의되지 않았습니다."라는 메시지가 나타납니다. – Matthew

+0

Context.VIBRATOR_SERVICE를 필요한 메서드의 매개 변수로 전달해야합니다. – barbarity

+0

나는 설명하려고하는 예를 보여주기 위해 나의 대답을 편집했다. – barbarity

1

사용이 하나

내 활동 클래스가 로딩 화면을 호출
public void startVibrate(Context context, int repeat) { 
    vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); 
    int dot = 200;   // Length of a Morse Code "dot" in milliseconds 
    int dash = 500;   // Length of a Morse Code "dash" in milliseconds 
    int short_gap = 200; // Length of Gap Between dots/dashes 
    int medium_gap = 500; // Length of Gap Between Letters 
    int long_gap = 1000; // Length of Gap Between Words 
    long[] pattern = { 
      0, // Start immediately 
      dot, short_gap, dot, short_gap, dot, medium_gap, // S 
      dash, short_gap, dash, short_gap, dash, medium_gap, // O 
      dot, short_gap, dot, short_gap, dot, long_gap  // S 
    }; 
    vibrator.vibrate(pattern, repeat); 
    //vibrator.vibrate(10000); 
}