ลีดเดอร์บอร์ดในเกม Android

คู่มือนี้แสดงวิธีใช้ลีดเดอร์บอร์ด API ในแอป Android เพื่อสร้างลีดเดอร์บอร์ดแบบภาพ บันทึกคะแนนของผู้เล่น และเปรียบเทียบคะแนน กับคะแนนของผู้เล่นจากเซสชันเกมก่อนหน้า คุณดู API ได้ ในแพ็กเกจ com.google.android.gms.games และ com.google.android.gms.games.leaderboards

ก่อนเริ่มต้น

หากยังไม่ได้ดำเนินการ คุณอาจดูแนวคิดเกมลีดเดอร์บอร์ดเพื่อเป็นข้อมูลเพิ่มเติมได้

ก่อนที่จะเริ่มเขียนโค้ดโดยใช้ API ของลีดเดอร์บอร์ด ให้ทำดังนี้

รับไคลเอ็นต์ลีดเดอร์บอร์ด

หากต้องการเริ่มใช้ลีดเดอร์บอร์ด API เกมของคุณต้องรับออบเจ็กต์ LeaderboardsClient ก่อน คุณทำได้โดยการเรียกใช้เมธอด PlayGames.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 ลีดเดอร์บอร์ดเริ่มต้นแสดงอยู่ด้านล่าง