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