2011-07-12 16 views
1

「勝者」と振動パターンのような音楽のプレイを一緒に開発しているゲームに振動のフィードバックを追加します。Android振動のクラッシュ

問題は、振動のある文章を追加すると、アプリがクラッシュすることです。例えば

private void Down() 
    { 
    soundM.playSound(Sound.SOUND_NEWINTENT); 

    for (int i=0 ; i<8 ; i++) { 
     for (int j=0 ; j<12 ; j++) { 
     if (Play[i][j] != null) { 
      Play[i][j].moveDown(); 

      if (Play[i][j].getSpritePosition().y>=380) { 
      Sprite.updateState(Sprite.STATE_GAME_LOST); 
      endOfGame = true; 

      soundM.playSound(Sound.SOUND_LOST); 
      vib = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 
      vib.vibrate(500); 

      } 
     } 
     } 
    } 

それは活動の内部ではないので、それが活動の文ですので、私は、このVibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE)ようなものを実装することはできません。私は​​を宣言し、上記のコードを実装しようとしましたが、ゲームが失われたときにアプリケーションがクラッシュします。

私はまた、 "通知"を介してそれをやろうとしましたが、同じ結果、アプリケーションがクラッシュします。

どのように私はそれに振動を実装できますか?

ありがとうございます!

P .:私はandroid.permission.VIBRATEを持っていますので、問題はありません。実際には私はメニューで働いています。

+0

あなたのエラーは何ですか?スタックトレースを印刷してください。 – Otra

答えて

0

私は、ゲームオブジェクトを呼び出すアクティビティにパブリックバイブレータオブジェクトを宣言します。私の場合、onCreateアクティビティは、SurfaceViewを拡張するMainGamePanelを起動します。 onCreate活動におけるので、私は、振動子のオブジェクトを宣言し、このことができます

public static Vibrator v; 

v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

//Then when I want to game to vibrate, inside of MainGamePanel I call 

long[] pattern = { 0, 200, 500 }; 

DroidzActivity.v.vibrate(pattern, 0); 

希望でそれを初期化します!

+0

wooaahありがとう!それは私の問題を解決しました! :) – Oriol