คู่มือนี้จะแสดงวิธีใช้ลีดเดอร์บอร์ดใน SDK บริการเกมของ Play c++
API เพื่อสร้างลีดเดอร์บอร์ดแบบภาพ บันทึกคะแนนของผู้เล่น และเปรียบเทียบ
คะแนนกับคะแนนของผู้เล่นจากเซสชันเกมก่อนหน้า คุณจะพบ API ได้ใน LeaderboardsClient
ก่อนเริ่มต้น
หากยังไม่ได้ดำเนินการ คุณอาจดูแนวคิดเกมลีดเดอร์บอร์ดเพื่อเป็นข้อมูลเพิ่มเติมได้
ก่อนเริ่มเขียนโค้ดโดยใช้ API ของลีดเดอร์บอร์ด ให้ทำดังนี้
ทำตามวิธีการติดตั้งและตั้งค่าแอปเพื่อใช้บริการเกมของ Google Play ในคู่มือตั้งค่า SDK บริการ Google Play
กำหนดลีดเดอร์บอร์ดที่คุณต้องการให้เกมแสดงหรืออัปเดตโดย ทำตามวิธีการใน คู่มือ Google Play Console
ทำความคุ้นเคยกับคำแนะนำที่อธิบายไว้ในรายการตรวจสอบคุณภาพ
รับไคลเอ็นต์ลีดเดอร์บอร์ด
หากต้องการเริ่มใช้ลีดเดอร์บอร์ด API เกมของคุณต้องได้รับออบเจ็กต์ LeaderboardsClient ก่อน
คุณทำได้โดยการเรียกใช้เมธอด PgsLeaderboardsClient_create()
และส่งกิจกรรม
อัปเดตคะแนนของผู้เล่น
เมื่อคะแนนของผู้เล่นเปลี่ยนแปลง (เช่น เมื่อผู้เล่นเล่นเกมจบ) เกมจะอัปเดตคะแนนของผู้เล่นในลีดเดอร์บอร์ดได้โดยการเรียกใช้ PgsLeaderboardsClient_submitScoreImmediate คุณต้องส่งรหัสลีดเดอร์บอร์ด ค่าคะแนนดิบ แท็กคะแนน (ไม่บังคับ) และฟังก์ชัน
Callback
// 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);
แนวทางปฏิบัติแนะนำคือการจัดการรหัสลีดเดอร์บอร์ดเป็นค่าคงที่หรือทรัพยากร ภายในโค้ด C++
แสดงลีดเดอร์บอร์ด
หากต้องการแสดงอินเทอร์เฟซผู้ใช้ของลีดเดอร์บอร์ดเริ่มต้นสำหรับลีดเดอร์บอร์ดที่เฉพาะเจาะจง ให้เรียกใช้ PgsLeaderboardsClient_showLeaderboardUI ฟังก์ชันนี้ต้องใช้แฮนเดิลไคลเอ็นต์ กิจกรรม รหัสลีดเดอร์บอร์ด ช่วงเวลาและคอลเล็กชัน
และฟังก์ชันเรียกกลับ
// 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);
ฟังก์ชันนี้จะแสดง UI ออบเจ็กต์ activity จะให้บริบทสำหรับการแสดง UI