Passer au contenu principal
Ce démarrage rapide vous aide à effectuer votre premier appel d’API PlayFab dans le moteur Cocos2d-x. Avant de pouvoir appeler une API PlayFab, vous devez disposer d’un compte de développeur PlayFab.

Configuration du projet Cocos2d-x

Système d’exploitation : ce guide est rédigé pour Windows 10, avec Visual Studio 2015. Cocos fonctionne sur la plupart des systèmes d’exploitation et environnements modernes. Les instructions d’installation sont similaires, mais diffèrent selon chaque combinaison. Si vous générez pour d’autres plateformes, les fichiers nécessaires sont les mêmes, mais vous devrez configurer vous-même le projet. Les étapes sont identiques avec Visual Studio 2013, mais les captures d’écran fournies ici seront légèrement différentes des vôtres.
  1. Téléchargez et installez Cocos2d-x
  2. Une fois Cocos2d-x configuré, créez un projet à l’aide de la CLI Cocos :
    • Accédez à l’emplacement où vous souhaitez stocker votre projet Cocos
    • Ouvrez une fenêtre de commande dans votre dossier parent (la CLI Cocos créera le répertoire du projet proprement dit)
      • Maintenez la touche Maj enfoncée et cliquez avec le bouton droit dans l’espace blanc vide de la fenêtre de l’Explorateur. CLI Cocos - Ouvrir une fenêtre de commande
    • Dans la nouvelle fenêtre de console, entrez cette commande :
      • cocos new CocosGettingStarted -l cpp
        • Assurez-vous que votre sous-répertoire cible (CocosGettingStarted) n’existe pas déjà : cette commande échoue si le dossier existe déjà.
        • Si vous recevez le message “‘cocos’ isn’t recognized as an internal or external command”, c’est que vous n’avez pas configuré correctement l’installation de cocos (reportez-vous au guide d’installation de Cocos pour Windows).
        • En cas de réussite, un nouveau dossier CocosGettingStarted est créé. Ce guide désignera cet emplacement par {CocosGettingStarted}.
    • La sortie en cas de réussite devrait ressembler à l’exemple ci-dessous.
  1. Téléchargez le SDK PlayFab Cocos2d-xSdk : SDK Cocos2D-x (C++). Enregistrez-le et extrayez-le dans un emplacement temporaire {PlayFabCocos}
    • Ouvrez le dossier suivant dans l’Explorateur Windows : {PlayFabCocos}/PlayFabClientSDK
    • Ouvrez le dossier suivant dans une deuxième fenêtre de l’Explorateur Windows : {CocosGettingStarted}/Classes
  2. Copiez-collez tous les fichiers de {PlayFabCocos}/PlayFabClientSDK vers {CocosGettingStarted}/Classes
  3. Dans Visual Studio, chargez {CocosGettingStarted}/proj.win32/CocosGettingStarted.sln.
  4. Nous voulons ajouter les fichiers PlayFab au projet Cocos.
  5. Dans le panneau Explorateur de solutions de Visual Studio, développez l’arborescence jusqu’au dossier : Solution/CocosGettingStarted/src
  6. Ouvrez une fenêtre de l’Explorateur Windows sur {CocosGettingStarted}/Classes
    • Sélectionnez tous les fichiers de {CocosGettingStarted}/Classes, SAUF AppDelegate.h, AppDelegate.cpp, HelloWorldScene.h et HelloWorldScene.cpp
    • Faites glisser tous ces fichiers depuis l’Explorateur et déposez-les dans le dossier Solution/CocosGettingStarted/src de Visual Studio identifié ci-dessus. En cas de problème, vous pouvez faire glisser et déposer chaque fichier un par un, en veillant bien à tous les ajouter.
    • Vous devriez voir ces fichiers dans votre projet VS : Explorateur de solutions - Fichiers du projet VS
PlayFab utilise plusieurs bibliothèques Cocos qui doivent être ajoutées manuellement à la liste des dépendances.
  • Ouvrez la fenêtre Properties de votre projet CocosGettingStarted (comme illustré ci-dessous). Fenêtre Properties - Répertoires include de Cocos
  • Remplacez Additional Include Directories par ceci : $(ProjectDir)..\cocos2d\external\zlib\include;$(ProjectDir)..\cocos2d\external\curl\include\win32;$(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories);$(_COCOS_HEADER_WIN32_BEGIN);$(_COCOS_HEADER_WIN32_END);..\cocos2d
Nous ajoutons curl et zlib, des bibliothèques fournies avec Cocos mais qui ne sont pas activées par défaut.
Votre projet CocosGettingStarted devrait maintenant se compiler (et même s’exécuter), mais il n’effectue encore aucun appel d’API PlayFab. Installation terminée !

Configurer votre premier appel d’API

Ce guide présente les étapes minimales nécessaires pour effectuer votre premier appel d’API PlayFab. La confirmation est visible dans l’application.
  1. Dans Visual Studio, dans le dossier Solution/CocosGettingStarted/src, ouvrez HelloWorldScene.h et remplacez son contenu par ceci :
    • Dans Visual Studio, dans le dossier Solution/CocosGettingStarted/src, ouvrez HelloWorldScene.h et remplacez son contenu par celui présenté ci-dessous.
  1. Juste à côté, ouvrez HelloWorldScene.cpp et remplacez son contenu par ceci :
Ces fichiers reprennent la HelloWorldScene existante, qui fait partie du modèle de nouveau projet Cocos, et la modifient pour inclure votre premier appel d’API PlayFab.

Terminer et exécuter

  1. Générez et exécutez votre projet Cocos : Dropdowns -> Debug -> Start Debugging.
  2. Vous êtes invité à générer le projet. Sélectionnez Yes.
  3. Vous devriez voir un écran indiquant : Congratulations, you made your first successful API call!
  4. Vous pouvez maintenant commencer à effectuer d’autres appels d’API et à créer votre jeu.
    Pour obtenir la liste de tous les appels d’API client disponibles, consultez notre documentation Références de l’API PlayFab.
Bon développement !

Analyse du code

Cette dernière section facultative décrit en détail chaque partie du code source ci-dessus.
  • HelloWorldScene.h
    • Ce fichier n’est que très légèrement modifié par rapport au HelloWorldScene.h par défaut généré par Cocos.
    • Plus précisément, il définit certains éléments de l’interface graphique Cocos que nous utilisons, ainsi que les prototypes de OnLoginSuccess et OnLoginFail.
    • Tout le reste correspond aux fonctions standard du moteur Cocos.
  • HelloWorldScene.cpp
    • createScene() est une fonction standard du moteur Cocos.
    • init()
      • Éléments habituels de l’interface graphique Cocos : closeItem et testReportLabel.
      • PlayFab::PlayFabSettings::titleId = "xxxx";
        • Chaque développeur PlayFab crée un titre dans Game Manager. Lorsque vous publiez votre jeu, vous devez coder ce titleId dans votre jeu. Cela permet au client de savoir comment accéder aux bonnes données dans PlayFab. Pour la plupart des utilisateurs, il suffit de considérer cette étape comme obligatoire pour que PlayFab fonctionne.
      • PlayFab::ClientModels::LoginWithCustomIDRequest request;
        • La plupart des méthodes d’API PlayFab nécessitent des paramètres d’entrée, qui sont regroupés dans un objet de requête.
        • Chaque méthode d’API nécessite un objet de requête unique, avec un ensemble de paramètres facultatifs et obligatoires.
          • Pour LoginWithCustomIDRequest, il existe un paramètre obligatoire CustomId, qui identifie de manière unique un joueur, et CreateAccount, qui permet de créer un nouveau compte avec cet appel.
        • Pour la connexion, la plupart des développeurs voudront utiliser une méthode de connexion plus appropriée.
          • Consultez la documentation sur la connexion PlayFab pour obtenir la liste de toutes les méthodes de connexion et de leurs paramètres d’entrée. Les choix courants sont :
            • LoginWithAndroidDeviceID
            • LoginWithIOSDeviceID
            • LoginWithEmailAddress
      • PlayFab::PlayFabClientAPI::LoginWithCustomID(request, OnLoginSuccess, OnLoginFail, nullptr);
        • Cette ligne lance la requête asynchrone vers LoginWithCustomID et appelle la fonction OnLoginSuccess ou OnLoginFail une fois terminée.
    • update(float delta)
      • Le simple fait de définir la variable statusMsg ne met pas à jour le texte affiché à l’écran.
      • Cette fonction met à jour le texte de l’interface graphique pour qu’il corresponde au contenu de statusMsg à chaque tick (ce qui n’est pas très efficace).
    • OnLoginSuccess(result, customData)
      • Lorsque le rappel de réussite est appelé, l’objet de résultat de nombreux rappels d’API contient les informations demandées.
      • LoginResult contient quelques informations de base sur le joueur, mais pour la plupart des utilisateurs, la connexion n’est qu’une étape obligatoire avant d’appeler d’autres API.
    • OnLoginFail(error, customData)
      • Si la fonction d’erreur est appelée, votre appel d’API a échoué.
      • Les appels d’API peuvent échouer pour de nombreuses raisons, et vous devez toujours essayer de gérer les échecs.
      • Raisons de l’échec des appels d’API (par ordre de probabilité)
        • PlayFabSettings.TitleId n’est pas défini. Si vous oubliez de définir titleId sur votre titre, rien ne fonctionnera.
          • Dans Cocos, la bibliothèque curl fera probablement planter votre jeu si vous ne définissez pas correctement titleId.
        • Paramètres de la requête. Si vous n’avez pas fourni les informations correctes ou requises pour un appel d’API particulier, celui-ci échouera. Pour plus d’informations, consultez error.errorMessage, error.errorDetails ou error.GenerateErrorReport().
        • Problème de connectivité de l’appareil. Les téléphones mobiles perdent et retrouvent constamment la connectivité : tout appel d’API peut donc échouer de manière aléatoire à tout moment, puis fonctionner immédiatement après. Entrer dans un tunnel peut vous déconnecter complètement.
        • Problème du serveur PlayFab. Comme pour tout logiciel, des problèmes peuvent survenir. Consultez nos notes de publication pour connaître les mises à jour.
        • Internet n’est pas fiable à 100 %. Il arrive que le message soit corrompu ou n’atteigne pas le serveur PlayFab.
      • Si vous avez des difficultés à déboguer un problème et que les informations du rappel d’erreur ne suffisent pas, rendez-vous sur nos forums.
    • customData est un pointeur void, qui peut être utilisé de n’importe quelle manière pour établir un contexte.
      • En C++, il est plus difficile de conserver le contexte d’un appel d’API ; nous avons donc ajouté le paramètre customData, qui permet de relayer n’importe quel objet vers le rappel et que vous pouvez utiliser comme bon vous semble pour établir un contexte.
      • Ainsi, si vous effectuez des appels d’API pour récupérer l’inventaire, vous pouvez transmettre un pointeur de joueur ou d’inventaire en tant que customData, puis mettre à jour l’inventaire de cet objet dans le rappel.
Dernière modification le 8 octobre 2026