本文档介绍了如何在 C++ 游戏中使用 Google Play 游戏服务的游戏统计数据。本文档假定您已按照设置
Google Play 游戏服务中所述设置项目。您可以在
PgsGameStatsClient中找到游戏统计数据 API。
准备工作
如果您尚未阅读,您可能会发现阅读 游戏统计数据游戏概念很有帮助。
开始使用 Game Stats API 进行编码之前,请做好以下准备:
按照 设置 Google Play 游戏服务指南中的说明安装并设置应用,以使用 Play 游戏服务。
按照 Google Play 管理中心指南中的说明,定义您希望在游戏中使用的游戏统计数据。
获取游戏统计数据客户端
如需开始使用成就 API,您的游戏必须先获取一个
PgsGameStatsClient
对象。为此,您可以调用
PgsPlayerGameEvent_create
方法并传入 activity。
客户端集成
PlayerGameEvent 的客户端集成涉及在触发点使用 C++ SDK 构建
事件对象,并使用 SDK 提供的上传函数发送这些对象。
同样,对于 progressUpdate 事件,请使用 currentProgress 属性记录更新后的进度,并使用 SDK 提供的上传函数发送这些属性。
事件
PlayerGameEvent 的客户端集成如下:
构建玩家游戏事件
C++
// Build the PlayerGameEvent
PgsPlayerGameEvent* player_event = PgsPlayerGameEvent_create("matchCompleted");
if (player_event != nullptr) {
PgsPlayerGameEvent_putString(player_event, "matchId", "Match_A");
PgsPlayerGameEvent_putString(player_event, "gameMode", "Battle_B");
PgsPlayerGameEvent_putString(player_event, "mapId", "Location_XYZ");
PgsPlayerGameEvent_putBoolean(player_event, "isWinner", true);
PgsPlayerGameEvent_putLong(player_event, "playerElimination", 2);
}
构建 progressUpdate 玩家游戏事件
C++
PgsPlayerGameEvent* progress_event = PgsPlayerGameEvent_create("progressUpdate");
if (progress_event != nullptr) {
PgsPlayerGameEvent_putLong(progress_event, "currentProgress", 52);
}
记录事件并上传
C++
// Record the event
PgsGameStatsClient_recordEvent(client, player_event);
// This submits the events to PGS
PgsGameStatsClient_requestEventsUpload(client);
// Clean up handle to avoid leaks
PgsPlayerGameEvent_destroy(player_event);
// Clean up client handle when PGS operations are finished
PgsGameStatsClient_destroy(client);