游戏统计数据

本文档介绍了如何在 C++ 游戏中使用 Google Play 游戏服务的游戏统计数据。本文档假定您已按照设置 Google Play 游戏服务中所述设置项目。您可以在 PgsGameStatsClient中找到游戏统计数据 API。

准备工作

如果您尚未阅读,您可能会发现阅读 游戏统计数据游戏概念很有帮助。

开始使用 Game Stats API 进行编码之前,请做好以下准备:

获取游戏统计数据客户端

如需开始使用成就 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);