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

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

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

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

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

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

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

กำลังปลดล็อกความสำเร็จ

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

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

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

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

ข้อมูลโค้ดต่อไปนี้แสดงให้เห็นว่าแอปของคุณสามารถเพิ่มรางวัลพิเศษของผู้เล่นได้อย่างไร

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(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() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

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