สถิติการแข่งขัน

เอกสารนี้อธิบายวิธีใช้สถิติเกมของบริการเกมของ Google Play ในเกม C++ เอกสารนี้ถือว่าคุณได้ตั้งค่าโปรเจ็กต์ตามที่อธิบายไว้ใน ตั้งค่า บริการเกมของ Google Play แล้ว คุณสามารถดู Game Stats API ได้ใน PgsGameStatsClient

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

หากยังไม่ได้ดำเนินการ คุณอาจพบว่าการตรวจสอบแนวคิดเกี่ยวกับสถิติเกมของ Game Stats มีประโยชน์

ก่อนเริ่มเขียนโค้ดโดยใช้ Game Stats API ให้ทำดังนี้

รับไคลเอ็นต์สถิติเกม

หากต้องการเริ่มใช้ API รางวัลพิเศษ เกมของคุณต้องได้รับ PgsGameStatsClient ออบเจ็กต์ก่อน คุณทำได้โดยการเรียกใช้ PgsPlayerGameEvent_create เมธอดและส่งกิจกรรม

การผสานรวมฝั่งไคลเอ็นต์

การผสานรวมฝั่งไคลเอ็นต์สำหรับ 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);