Como adicionar eventos ao jogo

Este guia mostra como usar o serviço Eventos em um aplicativo C++.

Antes de começar

Caso ainda não tenha feito isso, recomendamos consultar os conceitos do jogo de eventos.

Para configurar seu ambiente de desenvolvimento em C++ para usar o serviço de Eventos, siga as instruções no guia Primeiros passos para C++. Você pode fazer o download do SDK dos Serviços relacionados a jogos do Google Play para C++ na página de downloads do SDK.

Antes que o jogo possa acessar eventos, você precisa defini-los no Google Play Console.

Como enviar um evento

Você pode adicionar um código ao jogo para notificar o serviço de Eventos sempre que ocorrer um evento de interesse no jogo. Exemplos de eventos que você pode capturar no jogo são matar inimigos, explorar ou retornar a várias regiões ou adquirir itens no jogo. Normalmente, chame o método Increment no gerenciador de eventos para incrementar a contagem de um evento em 1 sempre que o jogador realizar uma ação associada ao evento (por exemplo, "Um monstro assassinado").

No exemplo a seguir, mostramos como enviar a contagem de eventos atualizada para o serviço Eventos.

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

Como recuperar eventos

Para recuperar o valor de contagem atual armazenado nos servidores do Google para um evento específico, chame um dos métodos Fetch*. Você pode fazer isso, por exemplo, se quiser mostrar estatísticas ou progresso de um jogador em uma IU personalizada no seu jogo.

O exemplo a seguir mostra como recuperar e registrar os dados de eventos no jogo.

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