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 :
- Suivez les instructions disponibles dans le guide Configurer le SDK des services Google Play afin d'installer et de configurer votre application pour qu'elle utilise les services de jeux Google Play.
- Définissez les succès que vous souhaitez que votre jeu débloque ou affiche, en suivant les instructions du guide de la Google Play Console.
- Téléchargez et examinez les exemples de code de succès disponibles sur la page des exemples Android.
- Familiarisez-vous avec les recommandations décrites dans la checklist de contrôle qualité.
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 :