Android गेम में लीडरबोर्ड

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

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

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

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

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

लीडरबोर्ड क्लाइंट पाना

लीडरबोर्ड एपीआई का इस्तेमाल शुरू करने के लिए, आपके गेम को पहले एक LeaderboardsClient ऑब्जेक्ट मिलना चाहिए. ऐसा करने के लिए, Games.getLeadeboardsClient() तरीके को कॉल करें और मौजूदा प्लेयर के लिए गतिविधि और GoogleSignInAccount को पास करें. खिलाड़ी के खाते की जानकारी वापस पाने का तरीका जानने के लिए, Android Games में साइन-इन करना लेख पढ़ें.

खिलाड़ी का स्कोर अपडेट करना

जब प्लेयर का स्कोर बदलता है (उदाहरण के लिए, जब प्लेयर गेम पूरा कर लेता है), तो आपका गेम लीडरबोर्ड पर उसका स्कोर अपडेट कर सकता है. इसके लिए, LeaderboardsClient.submitScore() को कॉल करके, लीडरबोर्ड आईडी और रॉ स्कोर की वैल्यू पास करें.

यहां दिया गया कोड स्निपेट दिखाता है कि आपका ऐप्लिकेशन, खिलाड़ी का स्कोर कैसे अपडेट कर सकता है:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

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

लीडरबोर्ड दिखाना

लीडरबोर्ड दिखाने के लिए, LeaderboardsClient.getLeaderboardIntent() को कॉल करें. इससे आपको डिफ़ॉल्ट लीडरबोर्ड यूज़र इंटरफ़ेस बनाने के लिए, Intent मिलेगा. इसके बाद, आपका गेम startActivityForResult को कॉल करके यूज़र इंटरफ़ेस (यूआई) दिखा सकता है.

नीचे दिया गया कोड स्निपेट दिखाता है कि आपका ऐप्लिकेशन, खिलाड़ी का स्कोर कैसे अपडेट कर सकता है. कोड स्निपेट में, RC_LEADERBOARD_UI अनुरोध कोड के लिए कोई भी पूर्णांक हो सकता है.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

ध्यान दें कि कोई नतीजा न मिलने पर भी, हमें startActivityForResult का इस्तेमाल करना होगा, ताकि एपीआई कॉल करने वाले पैकेज की पहचान कर सके. डिफ़ॉल्ट लीडरबोर्ड यूज़र इंटरफ़ेस (यूआई) का उदाहरण नीचे दिया गया है.