在遊戲中新增活動

隨著 Google Sign-In API 淘汰,我們將在 2026 年移除遊戲第 1 版 SDK。2025 年 2 月後,您將無法在 Google Play 上發布新整合 games v1 SDK 的遊戲。建議您改用 games v2 SDK。
雖然採用舊版遊戲第 1 版整合功能的現有遊戲仍可繼續運作幾年,但建議您從 2025 年 6 月開始遷移至第 2 版
本指南適用於使用 Play 遊戲服務第 1 版 SDK。Play 遊戲服務第 2 版的 C++ SDK 尚未推出。

本指南將說明如何在 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* 方法。舉例來說,如果您想在遊戲中顯示玩家的遊戲內統計資料或進度,就需要使用自訂 UI。

以下範例說明如何在遊戲中擷取及記錄事件資料。

  // 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);