为游戏添加事件

本指南介绍了如何在 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);