En este documento, se describe cómo usar las estadísticas de juego de los Servicios de juego de Google Play en juegos de C++. En este
documento, se supone que configuraste tu proyecto como se describe en Cómo configurar los
Servicios de Google Play Games. Puedes encontrar la API de Estadísticas de juego en la
PgsGameStatsClient.
Antes de comenzar
Si aún no lo hiciste, puede resultarte útil consultar los conceptos de Estadísticas de juego.
Antes de comenzar a programar con la API de Estadísticas de juego, haz lo siguiente:
Sigue las instrucciones para instalar y configurar tu app para usar los Servicios de Play Games en la guía Cómo configurar los Servicios de Google Play Games.
Define las estadísticas de juego que quieres que el juego muestre siguiendo las instrucciones de la guía de Google Play Console.
Obtener el cliente de Estadísticas de juego
Para comenzar a usar la API de logros, primero el juego debe obtener un
PgsGameStatsClient
objeto. Para ello, llama al
PgsPlayerGameEvent_create
método y pasa la actividad.
Integración del cliente
La integración del cliente para PlayerGameEvent implicaría que compiles el
objeto de evento en el SDK de C++, en los puntos de activación y
los envíes con las funciones de carga que proporciona el SDK.
Del mismo modo, para el evento progressUpdate, registra el progreso actualizado con la propiedad currentProgress con propiedades definidas adicionales y envíalas con las funciones de carga que proporciona el SDK.
Eventos
La integración del cliente para PlayerGameEvent es la siguiente:
Compilar el evento de juego del jugador
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);
}
Compilar el evento de juego del jugador progressUpdate
C++
PgsPlayerGameEvent* progress_event = PgsPlayerGameEvent_create("progressUpdate");
if (progress_event != nullptr) {
PgsPlayerGameEvent_putLong(progress_event, "currentProgress", 52);
}
Registrar evento y subir
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);