בעקבות ההוצאה משימוש של ה-API של התחברות באמצעות חשבון Google, בשנת 2026 אנחנו מסירים את גרסה 1 של ה-SDK שהייתה זמינה למשחקים. החל מפברואר 2025, לא תהיה לך אפשרות לפרסם ב-Google Play משחקים שה-SDK בגרסה הזו שולב בהם לאחרונה. מומלץ להשתמש בגרסה 2 של ה-SDK למשחקים.
פריטים קיימים עם גרסה 1 ימשיכו לפעול בשנים הקרובות, אבל מומלץ לעבור לגרסה 2 החל מיוני 2025.
המדריך הזה מיועד לגרסה 1 של ה-SDK של Play Games Services. גרסה 2 של ה-SDK ל-C++ של Play Games Services עדיין לא זמינה.
במדריך הזה נסביר איך להשתמש בשירות האירועים באפליקציות C++.
לפני שמתחילים
אם עדיין לא עשיתם זאת, אנחנו ממליצים לכם להכיר את המושגים שקשורים לאירועים במשחקים.
כדי להגדיר את סביבת הפיתוח בשפת C++ לשימוש בשירות, פועלים לפי ההוראות במדריך תחילת העבודה עם C++. אפשר להוריד את ה-SDK בשפת C++ של Play Games Services מדף ההורדות של ה-SDK.
כדי שלמשחק תהיה גישה לאירועים, צריך להגדיר אותם קודם ב-Google Play Console.
שליחת אירוע
אתם יכולים להוסיף קוד למשחק כדי לשלוח התראה לשירות האירועים בכל פעם שמתרחש אירוע שקשור למשחק. דוגמאות לאירועים במשחק: הריגת אויבים, חקר אזורים שונים במשחק או חזרה אליהם, או רכישת פריטים במשחק. בדרך כלל, אומרים ל-Increment במנהל האירועים להגדיל את מספר האירועים ב-1 בכל פעם ששחקן מבצע פעולה שמשויכת לאירוע (לדוגמה, "השחקן הרג מפלצת אחת").
בדוגמה הבאה אפשר לראות איך שולחים את הספירה המעודכנת לשירות האירועים.
// Increment the event count when player performs the 'Attack blue
// monster' action.
game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);
אחזור אירועים
כדי לאחזר את ערך הספירה הנוכחי של אירוע מסוים שמאוחסן בשרתים של Google, צריך להפעיל את אחת משיטות ה-Fetch*. לדוגמה, אם רוצים להציג נתונים סטטיסטיים או התקדמות של שחקן במשחק בממשק משתמש מותאם אישית.
בדוגמה הבאה אפשר לראות איך מאחזרים את נתוני האירועים ומתעדים אותם ביומן במשחק.
// 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);