在 Google 登录 API 弃用后,我们将于 2026 年移除 Play 游戏服务 v1 SDK。自 2025 年 2 月起,您将无法在 Google Play 上发布新集成了 Games v1 SDK 的游戏。我们建议您改用游戏 v2 SDK。
虽然集成旧版游戏 v1 的现有游戏在未来几年内仍可正常运行,但我们建议您从 2025 年 6 月开始迁移到 v2。
本指南适用于 Play 游戏服务 v1 SDK。适用于 Play 游戏服务 v2 的 C++ SDK 尚未推出。
本指南介绍了如何在 C++ 应用中使用 Events 服务。
准备工作
请阅读事件游戏概念(如果您尚未执行此操作)。
如需设置 C++ 开发环境以使用 Events 服务,请按照 C++ 入门指南中的说明操作。您可以从 SDK 下载页面下载 Play 游戏服务 C++ SDK。
在游戏可以访问事件之前,您必须先在 Google Play 管理中心内定义这些事件。
提交活动
您可以在游戏中添加代码,以便在发生与您游戏相关的事件时发送通知给“活动”服务。您可以在游戏中捕获的事件示例包括:杀死敌人、探索或返回各种游戏区域,或获取游戏内物品。通常,您会在事件管理器上调用 Increment
方法,以便在玩家执行与事件关联的操作(例如“杀死一个怪物”)时,将事件的计数递增 1。
以下示例展示了如何向 Events 服务提交更新后的活动次数。
// 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);