คู่มือนี้แสดงวิธีใช้ API รางวัลพิเศษในแอปพลิเคชัน Android เพื่อปลดล็อกและแสดงรางวัลพิเศษในเกม โดยคุณจะดู API ได้ในแพ็กเกจ com.google.android.gms.games
และ com.google.android.gms.games.achievements
ก่อนเริ่มต้น
คุณอาจต้องอ่านแนวคิดเกี่ยวกับรางวัลในเกม หากยังไม่ได้ดำเนินการ
ก่อนเริ่มเขียนโค้ดโดยใช้ Achievements API
ทำตามวิธีการติดตั้งและตั้งค่าแอปเพื่อใช้บริการเกมของ Google Play ในคู่มือตั้งค่า SDK บริการ Google Play
กำหนดรางวัลที่คุณต้องการให้เกมปลดล็อกหรือแสดงโดยทำตามวิธีการในคู่มือ Google Play Console
ดาวน์โหลดและตรวจสอบตัวอย่างโค้ดรางวัลในหน้าตัวอย่างของ Android
ทำความคุ้นเคยกับคําแนะนําที่อธิบายไว้ในรายการตรวจสอบคุณภาพ
รับไคลเอ็นต์รางวัลพิเศษ
หากต้องการเริ่มใช้ 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 ของรางวัลเริ่มต้นแสดงอยู่ด้านล่าง