รางวัลพิเศษใน Android Games

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

ข้อควรทราบก่อนที่จะเริ่มต้น

ลองอ่านแนวคิดเกี่ยวกับรางวัลพิเศษในเกมหากยังไม่ได้อ่าน

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

การเข้าถึงไคลเอ็นต์รางวัลพิเศษ

เกมต้องได้รับออบเจ็กต์ AchievementsClient ก่อนเพื่อเริ่มใช้รางวัลพิเศษ API ซึ่งทําได้โดยการเรียกเมธอด 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 รางวัลพิเศษที่เป็นค่าเริ่มต้น