En esta guía, se muestra cómo usar el servicio de eventos en una aplicación de C++.
Antes de comenzar
Si aún no lo hiciste, puede resultarte útil consultar los conceptos de juegos de eventos.
Para configurar tu entorno de desarrollo de C++ para usar el servicio de eventos, sigue las instrucciones de la guía de Introducción a C++. Puedes descargar el SDK de C++ de los Servicios de juego de Play desde la página de descargas de SDK.
Para que tu juego pueda acceder a los eventos, primero debes definirlos en Google Play Console.
Cómo enviar un evento
Puedes agregar código a tu juego para notificar al servicio de eventos cada vez que se produzca un evento de interés en tu juego. Algunos ejemplos de eventos que podrías capturar en tu juego son: matar enemigos, explorar o regresar a varias regiones del juego, o adquirir elementos en el juego. Por lo general, llamarías al método Increment
en el administrador de eventos para incrementar el recuento de un evento en 1 cada vez que el jugador realice una acción asociada con el evento (por ejemplo, "Mató a un monstruo").
En el siguiente ejemplo, se muestra cómo puedes enviar el recuento de eventos actualizado al servicio de eventos.
// Increment the event count when player performs the 'Attack blue
// monster' action.
game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);
Recupera eventos
Para recuperar el valor de recuento actual almacenado en los servidores de Google para un evento específico, llama a uno de los métodos Fetch*
. Puedes hacerlo, por ejemplo, si quieres mostrar las estadísticas o el progreso de un jugador en el juego desde una IU personalizada.
En el siguiente ejemplo, se muestra cómo puedes recuperar y registrar los datos del evento en tu juego.
// 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);