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 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 Google Play Games.
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 utiliser l'API de classement, votre jeu doit d'abord obtenir un
LeaderboardsClient objet.
Pour ce faire, appelez la PlayGames.getLeaderboardsClient()
méthode 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); } }); }
Vous devez utiliser startActivityForResult, même si elle ne renvoie aucun résultat.
Cela permet à l'API d'obtenir l'identité du package appelant. L'illustration suivante montre un exemple d'interface utilisateur de classement par défaut.