Ce guide vous explique comment utiliser les API de classement dans une application Android pour créer des classements visuels, enregistrer le score d'un joueur et le comparer à ses scores précédents. Les API sont disponibles dans les packages com.google.android.gms.games
et com.google.android.gms.games.leaderboards
.
Avant de commencer
Si vous ne l'avez pas déjà fait, consultez les concepts de classements dans les jeux.
Avant de commencer à coder à l'aide des API de classement :
Suivez les instructions d'installation et de configuration de votre application pour utiliser les services de jeux Google Play dans le guide Configurer le SDK des services Google Play.
Définissez les classements que vous souhaitez afficher ou actualiser en suivant les instructions du guide de la Google Play Console.
Téléchargez et examinez les exemples de code pour les classements de la page des exemples Android sur GiHub.
Familiarisez-vous avec les recommandations décrites dans la checklist Qualité.
Obtenir le client de classement
Pour commencer à utiliser l'API de classement, votre jeu doit d'abord obtenir un objet LeaderboardsClient
.
Pour ce faire, appelez la méthode PlayGames.getLeadeboardsClient()
et transmettez l'activité.
Actualiser le score du joueur
Lorsque le score du joueur change (par exemple, en fin de partie), votre jeu peut modifier son score dans le classement en appelant LeaderboardsClient.submitScore()
et en indiquant l'identifiant du classement général et la valeur du score brut.
L'extrait de code suivant montre comment votre application peut mettre à jour le score du joueur:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Une bonne pratique consiste à définir l'identifiant du classement dans votre fichier strings.xml
afin que votre jeu puisse référencer les classements par identifiant de ressource. Lorsque vous appelez pour actualiser et charger les scores des joueurs, veillez également à suivre ces bonnes pratiques afin d'éviter de dépasser votre quota d'API.
Afficher un classement
Pour afficher un classement, appelez LeaderboardsClient.getLeaderboardIntent()
afin d'obtenir un Intent
pour créer l'interface utilisateur du classement par défaut. Votre jeu peut alors afficher l'interface utilisateur en appelant startActivityForResult
.
L'extrait de code suivant montre comment votre application peut actualiser le score du joueur. Dans l'extrait de code, RC_LEADERBOARD_UI
est un nombre entier arbitraire associé au code de requête.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { PlayGames.getLeaderboardsClient(this) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
Même si aucun résultat n'est renvoyé, vous devez utiliser startActivityForResult
pour que l'API puisse obtenir l'identité du package appelant. Voici un exemple d'interface utilisateur par défaut pour les classements :