Android गेम के इवेंट

इस गाइड में, Google Play Games Services के ज़रिए उपलब्ध कराए गए इवेंट एपीआई का इस्तेमाल करके, गेम के आंकड़ों के लिए खिलाड़ी के गेमप्ले डेटा को इकट्ठा करने का तरीका बताया गया है. एपीआई, com.google.android.gms.games.event और com.google.android.gms.games पैकेज में मिल सकते हैं.

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

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

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

इवेंट क्लाइंट पाना

इवेंट एपीआई का इस्तेमाल शुरू करने के लिए, आपके गेम को पहले एक EventsClient ऑब्जेक्ट पाना होगा. ऐसा करने के लिए, PlayGames.getEventsClient() विधि को कॉल करके गतिविधि को पास करें.

इवेंट सबमिट करना

अपने गेम में कोड जोड़कर, Play Games Services को सूचना दी जा सकती है कि आपके गेम में कोई दिलचस्प इवेंट हुआ है.

इवेंट अपडेट भेजने के लिए, eventId वैल्यू और 0 के बराबर या उससे ज़्यादा के पूर्णांक incrementAmount के साथ EventsClient.increment() को कॉल करें.

  • eventId को Play Games Services जनरेट करता है. ऐसा तब होता है, जब Google Play Console में पहली बार इवेंट तय किया जाता है. इसका इस्तेमाल, आपके गेम में इस इवेंट की खास पहचान करने के लिए किया जाता है.

  • incrementAmount इनपुट का इस्तेमाल करके, गेम के किसी लक्ष्य को पूरा करने के लिए, खिलाड़ी की संख्यात्मक प्रगति के बारे में बताया जा सकता है. उदाहरण के लिए, अगर आपके गेम में '500 बग-आइड मॉन्स्टर को हराएं' इवेंट को ट्रैक करना है, तो incrementAmount वैल्यू उन मॉन्स्टर की संख्या हो सकती है जिन्हें खिलाड़ी ने एक ही लड़ाई में मारा है.

यहां एक उदाहरण दिया गया है, जिसमें 1 की बढ़ोतरी वाले इवेंट को सबमिट करने का तरीका बताया गया है:

public void submitEvent(String eventId) {
  PlayGames.getEventsClient(this)
      .increment(eventId, 1);
}

इवेंट वापस लाना

EventsClient.load() को कॉल करके, अपने गेम के लिए Google के सर्वर में सेव किए गए सभी इवेंट का डेटा वापस पाया जा सकता है. मेथड कॉल में, बूलियन वैल्यू पास करें. इससे यह पता चलता है कि Play Games Services को उपयोगकर्ता के डिवाइस पर, कैश मेमोरी में सेव किया गया डेटा मिटाना चाहिए या नहीं.

Google Play Console में तय किए गए खास इवेंट का डेटा पाने के लिए, EventsClient.loadByIds() को कॉल करें और इनपुट पैरामीटर में इवेंट आईडी का कलेक्शन पास करें.

यहां दिए गए स्निपेट में, अपने गेम के सभी इवेंट की सूची के लिए, Play Games Services से क्वेरी करने का तरीका बताया गया है:

public void loadEvents() {
  PlayGames.getEventsClient(this)
      .load(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) {
          if (task.isSuccessful()) {
            // Process all the events.
            for (Event event : task.getResult().get()) {
              Log.d(TAG, "loaded event " + event.getName());
            }
          } else {
            // Handle Error
            Exception exception = task.getException();
            int statusCode = CommonStatusCodes.DEVELOPER_ERROR;
            if (exception instanceof ApiException) {
              ApiException apiException = (ApiException) exception;
              statusCode = apiException.getStatusCode();
            }
            showError(statusCode);
          }
        }
      });
}