รางวัลพิเศษสำหรับเกม 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 รางวัลพิเศษเริ่มต้นแสดงอยู่ด้านล่าง