รางวัลพิเศษสำหรับเกม Android

คู่มือนี้จะแสดงวิธีใช้ API รางวัลพิเศษในแอปพลิเคชัน Android เพื่อปลดล็อกและแสดงรางวัลพิเศษในเกม คุณจะพบ API ได้ ในแพ็กเกจ com.google.android.gms.games และ com.google.android.gms.games.achievements

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

หากยังไม่ได้ดำเนินการ คุณอาจพบว่าการอ่าน แนวคิดเกี่ยวกับรางวัลพิเศษในเกมมีประโยชน์

ก่อนเริ่มเขียนโค้ดโดยใช้ API รางวัลพิเศษ ให้ทำดังนี้

รับไคลเอ็นต์รางวัลพิเศษ

หากต้องการเริ่มใช้ API รางวัลพิเศษ เกมของคุณต้องได้รับ AchievementsClient ออบเจ็กต์ก่อน คุณทำได้โดยการเรียกใช้ Games.getAchievementClient() เมธอดและส่งกิจกรรม

ปลดล็อกรางวัลพิเศษ

หากต้องการปลดล็อกรางวัลพิเศษ ให้เรียกใช้ AchievementsClient.unlock() เมธอดและส่งรหัสรางวัลพิเศษ

ข้อมูลโค้ดต่อไปนี้แสดงวิธีที่แอปปลดล็อกรางวัลพิเศษได้

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

หากรางวัลพิเศษเป็นประเภท เพิ่มขึ้นเรื่อยๆ (นั่นคือต้องทำหลายขั้นตอนจึงจะปลดล็อกได้) ให้เรียกใช้ AchievementsClient.increment() แทน

ข้อมูลโค้ดต่อไปนี้แสดงวิธีที่แอปเพิ่มรางวัลพิเศษของผู้เล่นได้

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

คุณไม่จำเป็นต้องเขียนโค้ดเพิ่มเติมเพื่อปลดล็อกรางวัลพิเศษ บริการเกมของ Google Play จะปลดล็อกรางวัลพิเศษโดยอัตโนมัติเมื่อทำตามจำนวนขั้นตอนที่กำหนด

แนวทางปฏิบัติแนะนำคือการกำหนดรหัสรางวัลพิเศษในไฟล์ strings.xml เพื่อให้เกมอ้างอิงรางวัลพิเศษตามรหัสทรัพยากรได้ เมื่อทำการเรียกเพื่อ อัปเดตและโหลดรางวัลพิเศษ โปรดทำตาม แนวทางปฏิบัติแนะนำเหล่านี้ด้วยเพื่อหลีกเลี่ยงไม่ให้เกินโควต้า API

แสดงรางวัลพิเศษ

หากต้องการแสดงรางวัลพิเศษของผู้เล่น ให้เรียกใช้ AchievementsClient.getAchievementsIntent() เพื่อรับ Intent สำหรับสร้างอินเทอร์เฟซผู้ใช้รางวัลพิเศษเริ่มต้น จากนั้นเกมจะแสดง UI ได้โดยการเรียกใช้ startActivityForResult

ข้อมูลโค้ดต่อไปนี้แสดงวิธีที่แอปแสดงอินเทอร์เฟซผู้ใช้รางวัลพิเศษเริ่มต้นได้ ในข้อมูลโค้ด RC_ACHIEVEMENT_UI เป็นจำนวนเต็มโดยพลการที่เกมใช้เป็นรหัสคำขอ

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

รูปภาพต่อไปนี้แสดงตัวอย่าง UI รางวัลพิเศษเริ่มต้น

แถวแนะนำ จะแสดงรางวัลพิเศษที่พบมากที่สุด ซึ่งเป็นรางวัลพิเศษที่ผู้เล่นยังไม่ปลดล็อก แต่ผู้เล่นคนอื่นๆ ส่วนใหญ่ปลดล็อกแล้ว