本文說明如何在 C++ 遊戲中使用 Google Play Games 服務遊戲統計資料。本文假設您已按照「設定 Google Play Games 服務」一文的說明設定專案。您可以在 PgsGameStatsClient 中找到遊戲統計資料 API。
事前準備
建議您先複習遊戲統計資料的相關遊戲概念,這會對您很有幫助。
開始使用 Game Stats API 編寫程式碼之前:
按照「設定 Google Play Games 服務」指南的說明安裝並設定應用程式,以便使用 Play Games 服務。
按照 Google Play 管理中心指南的說明,定義遊戲要顯示的遊戲統計資料。
取得遊戲統計資料用戶端
遊戲必須先取得 PgsGameStatsClient 物件,才能使用成就 API。要取得此物件,您可以呼叫 PgsPlayerGameEvent_create 方法,然後在活動內傳遞。
用戶端整合
如要整合用戶端 PlayerGameEvent,您需要在觸發點使用 C++ SDK 建構事件物件,並透過 SDK 提供的上傳函式傳送這些物件。
同樣地,對於 progressUpdate 事件,請使用 currentProgress 屬性記錄更新的進度,並使用 SDK 提供的上傳函式傳送這些屬性。
事件
「PlayerGameEvent」的用戶端整合方式如下:
建構 Player Game Event
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 Player Game Event
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);