Réussites 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 réussites

Pour commencer à utiliser l'API Achievements, votre jeu doit d'abord obtenir un objet AchievementsClient. Pour ce faire, appelez la méthode Games.getAchievementClient() et transmettez l'activité.

Déverrouillage des réussites

Pour déverrouiller une réussite, appelez la méthode AchievementsClient.unlock() et transmettez l'ID de la réussite.

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

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

Si la réussite est de type incrémentiel (plusieurs étapes sont nécessaires pour la déverrouiller), appelez plutôt la méthode AchievementsClient.increment().

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

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

Vous n'avez pas besoin d'ajouter de code pour déverrouiller la réussite. Les services de jeux Google Play la déverrouillent automatiquement 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 appelez pour mettre à jour et charger des réussites, veillez également à suivre ces bonnes pratiques afin d'éviter de dépasser votre quota d'API.

Affichage des réussites

Pour afficher les succès d'un joueur, appelez AchievementsClient.getAchievementsIntent() pour obtenir un Intent permettant 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 de réussite par défaut. 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() {
  PlayGames.getAchievementsClient(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 :