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

پس از منسوخ شدن رابط برنامه‌نویسی کاربردی ورود گوگل (Google Sign-In API)، ما در سال ۲۰۲۶ کیت توسعه نرم‌افزاری بازی‌ها نسخه ۱ (games v1 SDK) را حذف خواهیم کرد. پس از فوریه ۲۰۲۵، شما قادر به انتشار عناوینی که به تازگی با کیت توسعه نرم‌افزاری بازی‌ها نسخه ۱ (games v1 SDK) ادغام شده‌اند، در گوگل پلی نخواهید بود. توصیه می‌کنیم به جای آن از کیت توسعه نرم‌افزاری بازی‌ها نسخه ۲ (games v2 SDK) استفاده کنید.
در حالی که عناوین موجود با بازی‌های قبلی نسخه ۱ ادغام‌شده تا چند سال دیگر به کار خود ادامه می‌دهند، توصیه می‌شود از ژوئن ۲۰۲۵ به نسخه ۲ مهاجرت کنید .
این راهنما برای استفاده از SDK نسخه ۱ سرویس بازی‌های Play Games است. SDK مربوط به C++ برای سرویس بازی‌های Play Games نسخه ۲ هنوز در دسترس نیست.

این راهنما نحوه استفاده از سرویس رویدادها (Events) را در یک برنامه ++C به شما نشان می‌دهد.

قبل از اینکه شروع کنی

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

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

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

ارسال رویداد

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

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

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

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

برای بازیابی مقدار شمارش فعلی ذخیره شده در سرورهای گوگل برای یک رویداد خاص، یکی از متدهای 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);