เพิ่มกิจกรรมในเกม

หลังจากเลิกใช้งาน API ของ Google Sign-In แล้ว เราจะนำ SDK v1 ของเกมออกในปี 2026 หลังจากเดือนกุมภาพันธ์ 2025 คุณจะเผยแพร่ เกมที่เพิ่งผสานรวมกับ SDK v1 ของ Games ใน Google Play ไม่ได้ เราขอแนะนำให้ใช้ SDK v2 ของ Games แทน
แม้ว่าเกมที่มีอยู่ซึ่งผสานรวมกับเกมเวอร์ชัน 1 ก่อนหน้าจะยังคงทำงานได้อีก 2-3 ปี แต่เราขอแนะนำให้คุณย้ายข้อมูลไปยัง v2 ตั้งแต่เดือนมิถุนายน 2025 เป็นต้นไป
คู่มือนี้มีไว้สำหรับการใช้ SDK บริการเกมของ Play เวอร์ชัน 1 SDK สำหรับ C++ สำหรับ บริการเกมของ Play v2 ยังไม่พร้อมใช้งาน

คู่มือนี้แสดงวิธีใช้บริการเหตุการณ์ในแอปพลิเคชัน C++

ก่อนเริ่มต้น

หากยังไม่ได้ทำ คุณอาจต้องตรวจสอบแนวคิดเกมกิจกรรม

หากต้องการตั้งค่าสภาพแวดล้อมการพัฒนา C++ เพื่อใช้บริการเหตุการณ์ ให้ทำตามวิธีการในคู่มือการเริ่มต้นใช้งานสำหรับ C++ คุณดาวน์โหลด SDK สำหรับ C++ ของบริการเกมของ Play ได้จากหน้าดาวน์โหลด SDK

ก่อนที่เกมจะเข้าถึงกิจกรรมได้ คุณต้องกำหนดกิจกรรมใน Google Play Console ก่อน

ส่งกิจกรรม

คุณเพิ่มโค้ดในเกมเพื่อแจ้งเตือนบริการเหตุการณ์ทุกครั้งที่เกิดเหตุการณ์ที่เกมของคุณสนใจได้ ตัวอย่างเหตุการณ์ที่คุณบันทึกได้ในเกม ได้แก่ การฆ่าศัตรู การสำรวจหรือกลับไปยังภูมิภาคต่างๆ ของเกม หรือการรับไอเทมในเกม โดยปกติแล้ว คุณจะเรียกใช้เมธอด Increment ในเครื่องมือจัดการเหตุการณ์เพื่อเพิ่มจํานวนเหตุการณ์ทีละ 1 ทุกครั้งที่ผู้เล่น ทําการกระทําที่เชื่อมโยงกับเหตุการณ์ (เช่น "ฆ่ามอนสเตอร์ 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);