Ce guide explique comment utiliser les API de classement du SDK c++ des services Play Jeux pour créer des classements visuels, enregistrer le score d'un joueur et le comparer à ses scores précédents. Ces API sont disponibles
dans LeaderboardsClient.
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.
Familiarisez-vous avec les recommandations décrites dans la checklist de contrôle 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 PgsLeaderboardsClient_create()
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
PgsLeaderboardsClient_submitScoreImmediate. Vous devez transmettre l'identifiant du classement, la valeur du score brut, un tag de score facultatif et une fonction de rappel.
// Callback function to handle the result of submitting the score void OnScoreSubmitted(PgsStatusCode status_code, PgsScoreSubmissionData* score_submission_data, void* user_data) { if (status_code == PGS_STATUS_SUCCESS) { // Score submitted successfully // You can inspect score_submission_data for details // Remember to release the data when done: PgsScoreSubmissionData_Release(score_submission_data); } else { // Handle error } } // Function to submit the score void SubmitScore(PgsLeaderboardsClient* client, const char* leaderboard_id, int64_t score) { const char* score_tag = NULL; // Optional tag PgsLeaderboardsClient_submitScoreImmediate( client, leaderboard_id, score, score_tag, OnScoreSubmitted, NULL // user_data - optional context pointer ); } // Example usage: // Assuming 'my_leaderboard_id' is defined elsewhere, e.g., fetched from resources // SubmitScore(leaderboards_client, my_leaderboard_id, 1337);
Nous vous recommandons de gérer les identifiants de vos classements en tant que constantes ou ressources dans votre code c++.
Afficher un classement
Pour afficher l'interface utilisateur du classement par défaut pour un classement spécifique, appelez PgsLeaderboardsClient_showLeaderboardUI. Cette fonction nécessite le descripteur du client, l'activité, l'identifiant du classement, la période et la collection, ainsi qu'un rappel.
// Callback function to handle the result of showing the UI void OnShowLeaderboardUI(PgsStatusCode status_code, bool success, void* user_data) { if (status_code == PGS_STATUS_SUCCESS && success) { // UI was shown successfully } else { // Handle error or failure to show UI } } // Function to show a specific leaderboard UI void ShowLeaderboard(PgsLeaderboardsClient* client, jobject activity, const char* leaderboard_id) { PgsLeaderboardsClient_showLeaderboardUI( client, activity, leaderboard_id, PGS_LEADERBOARD_TIME_SPAN_ALL_TIME, // Or PGS_LEADERBOARD_TIME_SPAN_DAILY, PGS_LEADERBOARD_TIME_SPAN_WEEKLY PGS_LEADERBOARD_COLLECTION_PUBLIC, // Or PGS_LEADERBOARD_COLLECTION_FRIENDS OnShowLeaderboardUI, NULL // user_data - optional context pointer ); } // Example usage: // ShowLeaderboard(leaderboards_client, android_activity, my_leaderboard_id);
Cette fonction affiche l'interface utilisateur. L'objet activity fournit le contexte pour afficher l'interface utilisateur.