Статистика игры

В этом документе описывается, как использовать статистику игр Google Play Games Services в играх на C++. Предполагается, что ваш проект настроен, как описано в разделе «Настройка Google Play Games Services» . API статистики игр можно найти в PgsGameStatsClient .

Прежде чем начать

Если вы еще этого не сделали, вам может быть полезно повторить основные понятия игровой статистики .

Прежде чем начать писать код, используя API игровой статистики:

Получить клиент игровой статистики

Для начала использования API достижений ваша игра должна сначала получить объект PgsGameStatsClient . Это можно сделать, вызвав метод PgsPlayerGameEvent_create и передав в него объект Activity.

Интеграция на стороне клиента

Интеграция 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);