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

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

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

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

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

  • Google Play services SDK टूल सेट अप करें गाइड में दिए गए निर्देशों का पालन करके, अपने ऐप्लिकेशन को इंस्टॉल और सेट अप करें. इससे, आपको Google Play Games Services का इस्तेमाल करने में मदद मिलेगी.
  • 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);
        }
      });
}

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