رویدادها را به بازی خود اضافه کنید

این راهنما به شما نشان می دهد که چگونه از سرویس رویدادها در یک برنامه ++C استفاده کنید.

قبل از شروع

اگر قبلاً این کار را نکرده‌اید، مرور مفاهیم بازی رویدادها برایتان مفید است.

برای راه‌اندازی محیط توسعه C++ برای استفاده از سرویس رویدادها، دستورالعمل‌های راهنمای شروع به کار برای C++ را دنبال کنید. می‌توانید SDK C++ Service Games Play را از صفحه دانلودهای SDK دانلود کنید.

قبل از اینکه بازی شما بتواند به رویدادها دسترسی پیدا کند، ابتدا باید آنها را در کنسول Google Play تعریف کنید.

یک رویداد را ارسال کنید

می توانید کدی را به بازی خود اضافه کنید تا هر زمان که رویداد مورد علاقه بازی شما رخ می دهد، سرویس رویدادها را مطلع کنید. نمونه هایی از رویدادهایی که می توانید در بازی خود ثبت کنید عبارتند از: کشتن دشمنان، کاوش یا بازگشت به مناطق مختلف بازی، یا به دست آوردن آیتم های درون بازی. معمولاً، شما می‌توانید روش Increment را در مدیر رویداد فراخوانی کنید تا هر بار که بازیکن یک عمل مرتبط با رویداد را انجام می‌دهد (مثلاً «یک هیولا را کشته است») تعداد یک رویداد را 1 افزایش دهد.

مثال زیر نشان می دهد که چگونه می توانید تعداد رویدادهای به روز شده را به سرویس رویدادها ارسال کنید.

  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);

رویدادها را بازیابی کنید

برای بازیابی مقدار شمارش فعلی ذخیره شده در سرورهای Google برای یک رویداد خاص، یکی از روش‌های Fetch* را فراخوانی کنید. برای مثال، اگر می‌خواهید آمار بازی یا پیشرفت یک بازیکن را از یک رابط کاربری سفارشی در بازی خود نشان دهید، ممکن است این کار را انجام دهید.

مثال زیر نشان می دهد که چگونه می توانید داده های رویداد را در بازی خود بازیابی و ثبت کنید.

  // Log Events details.
  LogI("---- Showing Event Counts -----");
  gpg::EventManager::FetchAllCallback callback =
      [](gpg::EventManager::FetchAllResponse const &response) {
    for (auto i : response.data) {
      gpg::Event const &event = i.second;
      LogI("Event name: %s  count: %d", event.Name().c_str(),
           event.Count());
    }
  };
  game_services_->Events().FetchAll(callback);