Android गेम में उपलब्धियां

इस गाइड में बताया गया है कि अपने गेम में उपलब्धियों को अनलॉक करने और दिखाने के लिए, Android ऐप्लिकेशन में उपलब्धियों के एपीआई इस्तेमाल कैसे करें. ये एपीआई, com.google.android.gms.games और com.google.android.gms.games.achievements पैकेज में मिल सकते हैं.

शुरू करने से पहले

अगर आपने अब तक ऐसा नहीं किया है, तो गेम में उपलब्धियों के कॉन्सेप्ट की समीक्षा करना आपके लिए मददगार हो सकता है.

उपलब्धियां एपीआई का इस्तेमाल करके कोड करने से पहले:

  • Google Play की गेम सेवाओं का इस्तेमाल करने के लिए, Google Play Services SDK टूल सेट अप करें गाइड में दिए गए अपने ऐप्लिकेशन को इंस्टॉल और सेट अप करने के निर्देशों का पालन करें.
  • Google Play Console की गाइड में दिए गए निर्देशों का पालन करके, उन उपलब्धियों को तय करें जिन्हें आपको अपने गेम में अनलॉक या दिखाना है.
  • Android सैंपल पेज पर जाकर, उपलब्धियों के कोड के सैंपल डाउनलोड किए जा सकते हैं और उनकी समीक्षा की जा सकती है.
  • क्वालिटी की चेकलिस्ट में दिए गए सुझावों के बारे में जानें.

उपलब्धियों का क्लाइंट पाना

उपलब्धियां एपीआई का इस्तेमाल शुरू करने के लिए, आपके गेम को सबसे पहले एक 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 Games Services उपलब्धि को अपने-आप अनलॉक कर देती है.

strings.xml फ़ाइल में उपलब्धि आईडी तय करना एक अच्छा तरीका है, ताकि आपका गेम संसाधन आईडी के हिसाब से उपलब्धियों का रेफ़रंस दे सके. उपलब्धियों को अपडेट करने और लोड करने के लिए कॉल करते समय, एपीआई कोटा से ज़्यादा इस्तेमाल होने से बचने के लिए, इन सबसे सही तरीकों का पालन करना न भूलें.

उपलब्धियां दिखाना

किसी खिलाड़ी की उपलब्धियां दिखाने के लिए, AchievementsClient.getAchievementsIntent() को कॉल करें. इसके बाद, Intent को कॉल करके, उपलब्धियों का डिफ़ॉल्ट यूज़र इंटरफ़ेस बनाएं. इसके बाद, आपका गेम 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);
        }
      });
}

यहां डिफ़ॉल्ट उपलब्धियों के यूज़र इंटरफ़ेस (यूआई) का उदाहरण दिखाया गया है.