Panduan ini menunjukkan cara menggunakan API Papan Peringkat SDK c++ Layanan game Play untuk membuat papan peringkat visual, mencatat skor pemain, dan membandingkan skor dengan skor pemain dari sesi game sebelumnya. API ini dapat
ditemukan di LeaderboardsClient.
Sebelum memulai
Jika Anda belum melakukannya, sebaiknya tinjau konsep game papan peringkat.
Sebelum Anda mulai membuat kode menggunakan API papan peringkat:
Ikuti petunjuk penginstalan dan penyiapan aplikasi untuk menggunakan Layanan game Google Play di panduan Menyiapkan SDK layanan Google Play.
Tentukan papan peringkat yang diinginkan untuk ditampilkan atau diperbarui oleh game, dengan mengikuti petunjuk di panduan Konsol Google Play.
Pahami rekomendasi yang dijelaskan dalam Checklist Kualitas.
Mendapatkan klien papan peringkat
Untuk mulai menggunakan API papan peringkat, game Anda harus mendapatkan objek
LeaderboardsClient terlebih dahulu.
Anda dapat melakukannya dengan memanggil metode PgsLeaderboardsClient_create()
dan meneruskan aktivitas.
Memperbarui skor pemain
Saat skor pemain berubah (misalnya, saat pemain menyelesaikan
game), game Anda dapat memperbarui skor di papan peringkat dengan memanggil
PgsLeaderboardsClient_submitScoreImmediate. Anda perlu meneruskan
ID papan peringkat, nilai skor mentah, tag skor opsional, dan fungsi
panggilan balik.
// 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);
Praktik yang baik adalah mengelola ID papan peringkat sebagai konstanta atau resource dalam kode c++ Anda.
Menampilkan papan peringkat
Untuk menampilkan antarmuka pengguna papan peringkat default untuk papan peringkat tertentu, panggil PgsLeaderboardsClient_showLeaderboardUI. Fungsi ini memerlukan handle klien, aktivitas, ID papan peringkat, rentang waktu dan koleksi, serta callback.
// 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);
Fungsi ini menampilkan UI. Objek activity memberikan konteks untuk
menampilkan UI.