คําแนะนํานี้แสดงวิธีใช้ 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()
แล้วส่งผ่านกิจกรรม
กําลังอัปเดตคะแนนของผู้เล่น
เมื่อมีการเปลี่ยนแปลงคะแนนของผู้เล่น (เช่น เมื่อผู้เล่นจบเกม) เกมของคุณจะอัปเดตคะแนนในลีดเดอร์บอร์ดได้โดยเรียกใช้ 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 ของลีดเดอร์บอร์ดเริ่มต้น
