向游戏添加事件

随着 Google Sign-In API 的弃用,我们将在 2026 年移除 games v1 SDK。从 2025 年 2 月起,您将无法在 Google Play 上发布新集成了 games v1 SDK 的游戏。我们建议您改用 games v2 SDK。
虽然现有集成了旧版 games v1 的游戏仍可再运行几年,但建议您从 2025 年 6 月开始迁移到 v2
本指南适用于 Play 游戏服务 v1 SDK。Play 游戏服务 v2 的 C++ SDK 尚不可用。

本指南展示了如何在 C++ 应用中使用事件服务。

准备工作

如果您尚未这样做,查看事件游戏概念可能会有所帮助。

要设置使用事件服务的 C++ 开发环境,请按照C++ 入门指南中的说明进行操作。您可以从SDK 下载页面下载 Play 游戏服务 C++ 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);