Ajouter des événements à votre jeu

Ce guide explique comment utiliser le service Events dans une application C++.

Avant de commencer

Si ce n'est pas déjà fait, il peut être utile de revoir les concepts de jeux d'événements.

Pour configurer votre environnement de développement C++ afin qu'il utilise le service Événements, suivez les instructions du guide de démarrage de C++. Vous pouvez télécharger le SDK C++ des services de jeux Play sur la page des téléchargements du SDK.

Pour que votre jeu puisse accéder aux événements, vous devez d'abord les définir dans la console Google Play.

Envoyer un événement

Vous pouvez ajouter du code dans votre jeu pour avertir le service des événements chaque fois qu'un événement d'intérêt se produit dans votre jeu. Voici quelques exemples d'événements que vous pouvez capturer dans votre jeu: tuer des ennemis, explorer ou retourner dans différentes régions de jeu, ou acquérir des objets dans le jeu. En règle générale, vous appelez la méthode Increment sur le gestionnaire d'événements pour augmenter le nombre d'événements d'une unité de 1 chaque fois que le joueur effectue une action associée à l'événement (par exemple, "Tué un monstre").

L'exemple suivant montre comment envoyer le nombre d'événements mis à jour au service "Événements".

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

Récupérer des événements

Pour récupérer la valeur actuelle du nombre de serveurs stockés sur les serveurs de Google pour un événement spécifique, appelez l'une des méthodes Fetch*. Cela peut vous être utile, par exemple, si vous souhaitez afficher les statistiques d'un joueur ou sa progression à partir d'une interface utilisateur personnalisée.

L'exemple suivant montre comment récupérer et consigner les données d'événement dans votre jeu.

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