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() et transmettez l'activité et le GoogleSignInAccount pour le lecteur actuel. Pour savoir comment récupérer les informations du compte du joueur, consultez Se connecter dans les jeux Android.

Débloquer des succès

Pour débloquer un succès, appelez la méthode AchievementsClient.unlock() et transmettez l'ID du succès en question.

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 le succès est de type incrémentiel (ce qui signifie que plusieurs étapes sont nécessaires pour le débloquer), appelez plutôt AchievementsClient.increment().

L'extrait de code suivant montre comment votre application peut incrémenter le succès du joueur:

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

Vous n'avez aucun code supplémentaire à ajouter pour débloquer le succès. Les services de jeux Google Play le débloquent automatiquement une fois que le nombre d'étapes requis est atteint.

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 succès, veillez également à suivre ces bonnes pratiques afin d'éviter de dépasser votre quota d'API.

Afficher les succès

Pour afficher les succès d'un joueur, appelez AchievementsClient.getAchievementsIntent() afin d'obtenir un Intent permettant de créer l'interface utilisateur des succès 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 des succès par défaut. Dans cet extrait, 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 :