Добавьте события в свою игру

В связи с прекращением поддержки API Google Sign-In , мы удаляем SDK для игр версии 1 в 2026 году. После февраля 2025 года вы не сможете публиковать в Google Play игры, которые были интегрированы с SDK для игр версии 1. Мы рекомендуем использовать вместо него SDK для игр версии 2.
Хотя существующие игры с интеграцией предыдущих версий v1 будут продолжать работать еще пару лет, мы рекомендуем перейти на версию v2, начиная с июня 2025 года.
Данное руководство предназначено для использования SDK Play Games Services v1. SDK C++ для Play Games Services v2 пока недоступен.

В этом руководстве показано, как использовать службу событий в приложении на C++.

Прежде чем начать

Если вы еще этого не сделали, вам может быть полезно повторить концепции игры, основанной на событиях .

Чтобы настроить среду разработки C++ для использования службы событий, следуйте инструкциям в руководстве «Начало работы с C++» . Вы можете загрузить SDK для C++ сервисов Play Games со страницы загрузки 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);