Ce guide explique comment utiliser le service Events dans une application C++.
Avant de commencer
Si ce n'est pas déjà fait, n'hésitez pas à revoir les concepts d'événement dans les jeux.
Pour configurer votre environnement de développement C++ afin d'utiliser le service Events, suivez les instructions du guide Premiers pas avec C++. Vous pouvez télécharger le SDK C++ des services Play Jeux sur la page de téléchargement du SDK.
Avant que votre jeu puisse accéder aux événements, vous devez d'abord les définir dans la Google Play Console.
Envoyer un événement
Vous pouvez ajouter du code dans votre jeu pour avertir le service Événements chaque fois qu'un événement intéressant se produit. Voici quelques exemples d'événements que vous pouvez capturer dans votre jeu: tuer des ennemis, explorer ou revenir dans différentes régions du 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 incrémenter le nombre d'événements 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 Events.
// 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 de compte actuelle stockée sur les serveurs de Google pour un événement spécifique, appelez l'une des méthodes Fetch*
. Vous pouvez le faire, par exemple, si vous souhaitez afficher les statistiques ou la progression d'un joueur dans le jeu à 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);