คู่มือนี้แสดงวิธีใช้ API ลีดเดอร์บอร์ดในแอป Android
เพื่อสร้างลีดเดอร์บอร์ดแบบภาพ บันทึกคะแนนของผู้เล่น และเปรียบเทียบคะแนน
กับคะแนนของผู้เล่นจากเกมการแข่งขันครั้งก่อน ดู API
ในcom.google.android.gms.games
และแพ็กเกจ com.google.android.gms.games.leaderboards
แพ็กเกจ
ก่อนเริ่มต้น
ซึ่งหากคุณยังไม่ได้อ่าน อาจเป็นประโยชน์ในการตรวจสอบ แนวคิดเกมลีดเดอร์บอร์ด
ก่อนที่คุณจะเริ่มสร้างโค้ดโดยใช้ API ลีดเดอร์บอร์ด ให้ทำดังนี้
ทำตามวิธีการติดตั้งและตั้งค่าแอปเพื่อใช้งาน บริการเกมของ Google Play ใน คู่มือตั้งค่า SDK บริการ Google Play
กำหนดลีดเดอร์บอร์ดที่คุณต้องการให้เกมของคุณแสดงหรืออัปเดตโดย ทำตามวิธีการใน คู่มือ Google Play Console
ดาวน์โหลดและตรวจสอบตัวอย่างโค้ดลีดเดอร์บอร์ดใน หน้าตัวอย่างของ Android บน GiHub
ทําความคุ้นเคยกับคําแนะนําที่อธิบายไว้ใน รายการตรวจสอบคุณภาพ
รับไคลเอ็นต์ลีดเดอร์บอร์ด
เกมของคุณต้องได้รับออบเจ็กต์ LeaderboardsClient
ก่อนจึงจะเริ่มใช้ API ลีดเดอร์บอร์ดได้
ซึ่งทำได้ด้วยการเรียกใช้เมธอด Games.getLeadeboardsClient()
และส่งใน
กิจกรรม
อัปเดตคะแนนของผู้เล่น
เมื่อคะแนนของผู้เล่นเปลี่ยนแปลง (เช่น เมื่อผู้เล่นเล่นเกมจบ)
เกมจะอัปเดตคะแนนบนลีดเดอร์บอร์ดได้โดยเรียกใช้ LeaderboardsClient.submitScore()
และส่งผ่านรหัสลีดเดอร์บอร์ดและค่าคะแนนดิบ
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีที่แอปอัปเดตคะแนนของผู้เล่นได้
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
แนวทางปฏิบัติที่ดีคือให้กำหนดรหัสลีดเดอร์บอร์ดในไฟล์ strings.xml
ดังนั้น
เกมของคุณสามารถอ้างอิงลีดเดอร์บอร์ดตามรหัสทรัพยากร เมื่อโทรหา
อัปเดตและโหลดคะแนนผู้เล่น อย่าลืมทำตาม
แนวทางปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงไม่ให้เกินโควต้า API ของคุณ
แสดงลีดเดอร์บอร์ด
หากต้องการแสดงลีดเดอร์บอร์ด โปรดโทรหา LeaderboardsClient.getLeaderboardIntent()
เพื่อรับ
Intent
ถึง
สร้างอินเทอร์เฟซผู้ใช้ลีดเดอร์บอร์ดเริ่มต้น จากนั้นเกมจะแสดง UI ได้โดยเรียกใช้
startActivityForResult
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีที่แอปอัปเดตคะแนนของผู้เล่นได้ ใน
ข้อมูลโค้ด RC_LEADERBOARD_UI
คือจำนวนเต็มที่กำหนดเองสำหรับโค้ดคำขอ
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); } }); }
แม้ว่าจะไม่มีการแสดงผลลัพธ์ แต่คุณจะต้องใช้
startActivityForResult
เพื่อให้ API รับข้อมูลระบุตัวตนของแพ็กเกจการโทรได้ ตัวอย่างค่าเริ่มต้น
UI ลีดเดอร์บอร์ดแสดงอยู่ด้านล่าง