2011-07-12 4 views
1

Je veux ajouter un retour de vibration pour un jeu que je développe, ensemble un jeu de musique, comme "gagnant" et un motif de vibration.Android Vibration Crash

Le problème est que lorsque j'ajoute les phrases vibrantes, mon application plante.

Par exemple:

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); 

      } 
     } 
     } 
    } 

Il n'est pas dans une activité, donc je ne peux pas mettre en œuvre quelque chose comme ça Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE), parce qu'il est une déclaration d'activité. J'ai essayé de déclarer public Vibrator vib; et ensuite mettre en œuvre le code que j'ai montré ci-dessus, mais quand la partie perdue est recived l'application se bloque.

J'ai également essayé de le faire via "notification", mais le même résultat, l'application se bloque.

Une idée comment puis-je implémenter vibrer sur elle?

Merci!

P.S .: J'ai android.permission.VIBRATE, donc ce n'est pas le problème. En fait j'ai virbation travaillant sur le menu.

+0

Quelle est votre erreur? Veuillez imprimer votre trace de pile. – Otra

Répondre

0

Je déclare un objet de vibrateur public dans l'activité qui appelle l'objet de jeu. Dans mon cas, l'activité onCreate lance un MainGamePanel qui étend une surfaceView. Donc dans l'activité onCreate je déclare l'objet vibrateur et l'initialise avec

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); 

Espérons que cela aide!

+0

wooaah merci !! Ça m'aide tellement, en fait ça a résolu mon problème !! :) – Oriol