Succès dans les jeux Android

Ce guide explique comment utiliser les API Achievements dans une application Android pour débloquer et afficher des succès dans un jeu. Les API sont disponibles dans les packages com.google.android.gms.games et com.google.android.gms.games.achievements.

Avant de commencer

Si ce n'est pas déjà fait, n'hésitez pas à revoir les concepts de succès dans les jeux.

Avant de commencer à coder à l'aide de l'API Achievements :

Obtenir un client de succès

Pour commencer à utiliser l'API Achievements, votre jeu doit d'abord obtenir un objet AchievementsClient. Pour ce faire, appelez la méthode Games.getAchievementClient(), puis en transmettant l'activité et la GoogleSignInAccount pour le joueur actif. Pour savoir comment récupérer informations de compte de joueur, consultez la section Se connecter aux jeux Android.

Déverrouillage des réussites

Pour déverrouiller un succès, appelez la méthode AchievementsClient.unlock() et transmettez l'identifiant de la réussite.

L'extrait de code suivant montre comment votre application peut débloquer des succès :

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

Si la réussite est de type incrémentiel (c'est-à-dire que plusieurs étapes sont nécessaires pour la déverrouiller), appelez AchievementsClient.increment() à la place.

L'extrait de code suivant montre comment votre application peut incrémenter la réussite du joueur:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

Vous n'avez pas besoin d'ajouter de code pour déverrouiller la réussite. Services de jeux Google Play débloque automatiquement la réussite lorsqu'elle atteint le nombre d'étapes requis.

Une bonne pratique consiste à définir les ID de succès dans le fichier strings.xml pour permettre à votre jeu de référencer les succès par ID de ressource. Lorsque vous effectuez des appels pour mettre à jour et charger réussites, veillez également à suivre ces bonnes pratiques pour sans dépasser votre quota d'API.

Afficher les réussites

Pour afficher les succès d'un joueur, appelez AchievementsClient.getAchievementsIntent(). pour obtenir un Intent afin de créer l'interface utilisateur des réussites par défaut. Votre jeu peut alors afficher l'interface utilisateur en appelant startActivityForResult.

L'extrait de code suivant montre comment votre application peut afficher l'interface utilisateur par défaut des succès. Dans l'extrait de code, RC_ACHIEVEMENT_UI est un entier arbitraire que le jeu utilise comme code de requête.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Voici un exemple d'interface utilisateur de succès par défaut :