הוספת אירועים למשחק שלך

בעקבות ההוצאה משימוש של API של כניסה באמצעות חשבון Google, אנחנו מסירים את ה-SDK של גרסה 1 למשחקים ב-2026. אחרי פברואר 2025, לא תוכלו לפרסם ב-Google Play כותרים ששולבו לאחרונה עם ערכת ה-SDK של גרסה 1 של משחקים. במקום זאת, מומלץ להשתמש ב-games v2 SDK.
כותרים קיימים עם השילובים הקודמים של המשחקים בגרסה 1 ימשיכו לפעול במשך כמה שנים, אבל מומלץ להעביר אותם לגרסה 2 החל מיוני 2025.
המדריך הזה מיועד לשימוש ב-SDK של Play Games Services v1. עדיין לא זמין SDK ל-C++ עבור Play Games Services v2.

במדריך הזה מוסבר איך להשתמש בשירות Events באפליקציה ב-C++‎.

לפני שמתחילים

אם עדיין לא עשיתם זאת, מומלץ לעיין במושגי המשחקים של האירועים.

כדי להגדיר את סביבת הפיתוח של C++‎ כך שתשתמש בשירות Events, פועלים לפי ההוראות במדריך תחילת העבודה עם C++‎. אפשר להוריד את ה-SDK של Play Games Services ב-C++ מדף ההורדות של ה-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);