คู่มือนี้แสดงวิธีใช้ API ลีดเดอร์บอร์ดในแอปพลิเคชัน Android
เพื่อสร้างลีดเดอร์บอร์ดแบบภาพ บันทึกคะแนนของผู้เล่น และเปรียบเทียบคะแนน
กับคะแนนของผู้เล่นจากเกมการแข่งขันครั้งก่อน ดู API
ในcom.google.android.gms.games
และแพ็กเกจ com.google.android.gms.games.leaderboards
แพ็กเกจ
ก่อนเริ่มต้น
ซึ่งหากคุณยังไม่ได้อ่าน อาจเป็นประโยชน์ในการตรวจสอบ แนวคิดเกมลีดเดอร์บอร์ด
ก่อนที่คุณจะเริ่มสร้างโค้ดโดยใช้ API ลีดเดอร์บอร์ด ให้ทำดังนี้
- ทำตามวิธีการติดตั้งและตั้งค่าแอปเพื่อใช้งาน บริการเกมของ Google Play ใน คู่มือตั้งค่า SDK บริการ Google Play
- กำหนดลีดเดอร์บอร์ดที่คุณต้องการให้เกมของคุณแสดงหรืออัปเดตโดย ทำตามวิธีการในคู่มือ Google Play Console
- ดาวน์โหลดและตรวจสอบตัวอย่างโค้ดลีดเดอร์บอร์ดใน หน้าตัวอย่างสำหรับ Android
- ทําความคุ้นเคยกับคําแนะนําที่อธิบายไว้ใน รายการตรวจสอบคุณภาพ
การรับไคลเอ็นต์ลีดเดอร์บอร์ด
เกมของคุณต้องได้รับออบเจ็กต์ LeaderboardsClient
ก่อนจึงจะเริ่มใช้ API ลีดเดอร์บอร์ดได้
ซึ่งทำได้ด้วยการเรียกใช้เมธอด Games.getLeadeboardsClient()
และส่งใน
กิจกรรมและ GoogleSignInAccount
สำหรับโปรแกรมเล่นปัจจุบัน หากต้องการทราบวิธีเรียกข้อมูล
ข้อมูลบัญชีผู้เล่น โปรดดูการลงชื่อเข้าใช้ใน Android Games
การอัปเดตคะแนนของผู้เล่น
เมื่อคะแนนของผู้เล่นเปลี่ยนแปลง (เช่น เมื่อผู้เล่นเล่นเกมจบ)
เกมจะอัปเดตคะแนนบนลีดเดอร์บอร์ดได้โดยเรียกใช้ LeaderboardsClient.submitScore()
และส่งผ่านรหัสลีดเดอร์บอร์ดและค่าคะแนนดิบ
ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีที่แอปอัปเดตคะแนนของผู้เล่นได้
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(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() { Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(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 ลีดเดอร์บอร์ดแสดงอยู่ด้านล่าง