الأحداث في ألعاب Android

يوضِّح لك هذا الدليل كيفية جمع بيانات أسلوب لعب اللاعبين لإحصاءات الألعاب باستخدام واجهات برمجة تطبيقات الأحداث. مقدمة من "خدمات ألعاب Google Play". يمكن العثور على واجهات برمجة التطبيقات في com.google.android.gms.games.event وcom.google.android.gms.games

قبل البدء

إذا لم تكن قد فعلت ذلك بالفعل، فقد تجد أنه من المفيد مراجعة مفاهيم ألعاب الأحداث.

قبل بدء الترميز باستخدام واجهات برمجة التطبيقات للأحداث، اتّبِع الخطوات التالية:

جارٍ الحصول على عميل الأحداث

لبدء استخدام واجهات برمجة التطبيقات للأحداث، يجب أن تحصل لعبتك أولاً على EventsClient. يمكنك القيام بذلك عن طريق استدعاء Games.getEventsClient() وتمرير الأخرى.

إرسال الأحداث

يمكنك إضافة رمز في لعبتك لإرسال إشعار إلى "خدمات ألعاب Google Play" في حال حدث مثير للاهتمام بلعبتك.

لإرسال تعديل حدث، يمكنك الاتصال بالرقم EventsClient.increment() مع إعطاء القيمة eventId عدد صحيح incrementAmount يساوي 0 أو أكبر منه.

  • يتم إنشاء eventId من خلال "خدمات ألعاب Google Play" عند تحديد لأول مرة الحدث في Google Play Console ويُستخدَم لتحديد هذا الحدث بشكل فريد في لعبتك.
  • يمكنك استخدام إدخال incrementAmount لتحديد مستوى تقدّم اللاعب نحو تحقيق الهدف. تحقيق بعض الأهداف الخاصة باللعبة. على سبيل المثال، إذا كان الحدث الخاص تريد تتبعه هي 'Defeat 500 Bug-eyed monsters'، ويمكن أن تكون القيمة incrementAmount هي عدد الوحوش التي قتلها اللاعب في معركة واحدة.

في ما يلي مثال على كيفية إرسال حدث بمقدار 1 زيادة:

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

جارٍ استرداد الأحداث

يمكنك استرداد جميع بيانات الأحداث المخزَّنة في خوادم Google للعبتك من خلال: يَتِمُّ الْآنَ الِاتِّصَالْ بِـ EventsClient.load(). في جلسة المعمل، طلب إجراء، إدخال قيمة منطقية للإشارة إلى ما إذا كان على خدمات ألعاب Google Play محو البيانات البيانات المخزنة مؤقتًا على جهاز المستخدم.

لاسترداد بيانات أحداث معيّنة حددتها في Google Play Console، اطلب EventsClient.loadByIds() ومرِّر مصفوفة من أرقام تعريف الأحداث في مَعلمات الإدخال.

يوضّح المقتطف التالي كيفية طلب بحث عن "خدمات ألعاب Google Play" قائمة بكل أحداث لعبتك:

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);
          }
        }
      });
}