בעקבות הוצאה משימוש של Google Sign-In API, אנחנו מסירים את ה-SDK בגרסה Games v1 בשנת 2026. אחרי פברואר 2025, לא תהיה לך אפשרות לפרסם ב-Google Play משחקים ששולבו לאחרונה עם ה-SDK בגרסה Games v1. מומלץ להשתמש ב-SDK בגרסה Games v2.
פריטים קיימים עם שילובים קודמים של משחקים בגרסה 1 ימשיכו לפעול למשך כמה שנים, אבל מומלץ לעבור לגרסה 2 החל מיוני 2025.
המדריך הזה מיועד לשימוש ב-SDK של Play Games Services בגרסה 1. ה-SDK של C++ ל-Play Games Services בגרסה 2 עדיין לא זמין.
במדריך הזה נסביר איך להשתמש בשירות Events באפליקציית C++.
לפני שמתחילים
אם עדיין לא עשיתם זאת, אנחנו ממליצים לכם להכיר את המושגים שקשורים לאירועים במשחקים.
כדי להגדיר את סביבת הפיתוח בשפת C++ לשימוש בשירות Events, פועלים לפי ההוראות במדריך תחילת העבודה עם C++. אפשר להוריד את Play Games services C++ SDK מדף ההורדות של ה-SDK.
כדי שהמשחק יוכל לגשת לאירועים, צריך להגדיר אותם קודם ב-Google Play Console.
שליחת אירוע
אתם יכולים להוסיף קוד למשחק כדי לשלוח התראה לשירות האירועים בכל פעם שמתרחש אירוע שקשור למשחק. דוגמאות לאירועים שאפשר לתעד במשחק: הריגת אויבים, חקר אזורים שונים במשחק או חזרה אליהם, או רכישת פריטים במשחק. בדרך כלל, קוראים לשיטה Increment במנהל האירועים כדי להגדיל את מספר האירועים ב-1 בכל פעם שהנגן מבצע פעולה שמשויכת לאירוע (לדוגמה, 'הרג מפלצת אחת').
בדוגמה הבאה אפשר לראות איך שולחים את ספירת האירועים המעודכנת לשירות Events.
// 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);