במאמר הזה מוסבר איך להשתמש בנתונים סטטיסטיים של משחקים ב-Google Play Games Services במשחקי C++. במסמך הזה מניחים שהגדרתם את הפרויקט כמו שמתואר במאמר הגדרה של Google Play Games Services. אפשר למצוא את Game Stats API ב-PgsGameStatsClient.
לפני שמתחילים
אם עדיין לא עשיתם זאת, אנחנו ממליצים לכם להכיר את המושגים שקשורים לנתונים סטטיסטיים של משחקים.
לפני שמתחילים לכתוב קוד שמשתמשים בו בממשק ה-API של נתוני המשחק:
מתקינים ומגדירים את האפליקציה לפי ההוראות לשימוש ב-Play Games Services שמופיעות במדריך להגדרת Google Play Games Services.
מגדירים את נתונים סטטיסטיים של המשחק שרוצים שהמשחק יאסוף, לפי ההוראות במדריך של Google Play Console.
קבלת לקוח נתונים סטטיסטיים של המשחק
כדי להתחיל להשתמש בממשק ה-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);