Dodaj wydarzenia do swojej gry

W związku z wycofaniem interfejsu Logowania przez Google w 2026 r. usuniemy pakiet SDK gier w wersji 1. Po lutym 2025 r. nie będzie można publikować w Google Play tytułów, które zostały dopiero zintegrowane z pakietem SDK gier w wersji 1. Zalecamy zamiast tego korzystać z pakietu SDK gier w wersji 2.
Chociaż istniejące tytuły z integracją poprzedniej wersji gry 1 będą działać przez kilka lat, zachęcamy do przejścia na wersję 2 od czerwca 2025 r.
Ten przewodnik dotyczy pakietu SDK usług gier Play w wersji 1. Pakiet C++ SDK usług gier Google Play w wersji 2 nie jest jeszcze dostępny.

Z tego przewodnika dowiesz się, jak korzystać z usługi Events w aplikacji C++.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobisz, warto zapoznać się z koncepcjami dotyczącymi wydarzeń w grze.

Aby skonfigurować środowisko programistyczne C++, które będzie korzystać z usługi Events, postępuj zgodnie z instrukcjami podanymi w przewodniku Pierwsze kroki w języku C++. Pakiet SDK usług gier Google Play w języku C++ możesz pobrać na stronie Pobieranie pakietów SDK.

Zanim gra będzie mogła uzyskać dostęp do zdarzeń, musisz je zdefiniować w Konsoli Google Play.

Przesyłanie wydarzenia

Możesz dodać do gry kod, który będzie informować usługę Zdarzenia o wystąpieniu zdarzenia istotnego dla Twojej gry. Przykłady zdarzeń, które możesz rejestrować w grze: zabijanie przeciwników, eksplorowanie lub wracanie do różnych regionów gry czy zdobywanie przedmiotów w grze. Zazwyczaj wywołujesz metodę Increment menedżera zdarzeń, aby zwiększać liczbę zdarzeń o 1 za każdym razem, gdy gracz wykona działanie powiązane ze zdarzeniem (np. „Zabicie potwora”).

Z tego przykładu dowiesz się, jak przesłać zaktualizowaną liczbę zdarzeń do usługi Events.

  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);

Pobieranie zdarzeń

Aby pobrać bieżącą wartość zliczania przechowywaną na serwerach Google dla konkretnego zdarzenia, wywołaj jedną z metod Fetch*. Możesz to zrobić na przykład wtedy, gdy chcesz wyświetlić statystyki lub postępy gracza w grze za pomocą niestandardowego interfejsu.

Poniższy przykład pokazuje, jak pobierać i rejestrować dane zdarzenia w grze.

  // 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);