Advertisement
  1. Code
  2. iOS SDK

Game Center et classements pour votre application iOS

by
Read Time:8 minsLanguages:

French (Français) translation by Daszie Chan (you can also view the original English article)

Introduction

Game Center est le réseau social de jeu d’Apple. Il permet aux utilisateurs de suivre leurs meilleurs scores dans un classement, de comparer les records, d'inviter des amis à jouer à un jeu et de démarrer un jeu multijoueur. Donc si vous avez créé un jeu iOS et que vous souhaitez que les utilisateurs puissent poster leurs scores dans un classement Game Center, c’est le bon tutoriel pour vous !

Pour plus d’informations sur les apps et le Game Center, visitez la page Apple Developer.

Le projet Xcode

Pour ce tutoriel, j’ai créé un projet Xcode de base que l'on peut télécharger sur GitHub. Je vais vous expliquer toutes les étapes nécessaires pour créer un classement sur iTunes Connect et le code nécessaire pour présenter un score, avec un bouton pour ouvrir le classement de l’app.

Voici à quoi le storyboard de l’application ressemble :

Demo Xcode projectDemo Xcode projectDemo Xcode project

Ce projet a un UILabel avec un texte rouge, j’ai appelé scoreLabel et des UIButtons. Le rouge va ajouter 10 points au score et l'envoyer dans un classement Game Center, et le bleu va ouvrir GKGameCenterViewController et montrer ce classement.

La première chose à faire est d'autoriser Game Center dans l’onglet Capabilities dans Xcode.

Enable Game Center in the Capabilities tabEnable Game Center in the Capabilities tabEnable Game Center in the Capabilities tab

Ensuite, vous devez importer GameKit en haut de votre fichier ViewController.swift et ajoutez le protocole de GKGameCenterControllerDelegate à la déclaration de classe.

Ajoutons maintenant quelques variables. Vous pouvez coller ce code juste dans votre classe ViewController :

La première variable indique si vous avez Game Center activé, et l’autre est utilisée ultérieurement par le code d’identification du joueur local pour permettre à GameKit de déterminer le classement par défaut.

score sera initialement à 0, bien sûr.

LEADERBOARD_ID est une chaîne (string) que vous devez définir afin que Game Center soumette votre score au serveur par le biais de l’identificateur du classement. Choisissez le nom que vous voulez, mais gardez à l’esprit qu’il doit avoir une syntaxe web inversée. C’est pourquoi j’ai identifié ce classement com.score.mygamename, où mygamename doit être remplacé par le nom de votre application en caractères minuscules, sans espaces.

Avant d’activer Game Center dans la page de connexion iTunes de votre application, nous allons terminer le code de base. Dans viewDidLoad(), ajoutez cette ligne :

Et ajoutez la fonction suivante sous viewDidLoad() :

Dans le cas où un utilisateur ne s’est pas connecté à Game Center sur son appareil, la méthode ci-dessus affichera l’écran de connexion de Game Center dès qu’il se connectera au serveur GC. Une fois le joueur connecté, l’application obtiendra l’id du classement par défaut.

Dans la méthode suivante, nous allons faire en sorte que l’app prenne la chaîne LEADERBOARD_ID vous avez déjà créé et l'utilise en tant qu'id de classement par défaut du serveur Game Center.

Le code ci-dessus ajoute également 10 points au score actuel, donc chaque fois que vous cliquez sur le bouton Ajouter le Score et soumettre à GC, vous verrez le bouton du score rouge changer, et l’app soumettra ce score mis à jour dans votre classement de GC.

Vous devez maintenant ajouter une méthode délégué GameKit qui fera disparaître le contrôleur GC.

Il ne reste qu’une seule méthode à coder avant de créer votre classement sur iTunes Connect, qui est l’action du bouton qui va ouvrir le Game Center ViewController.

Comme vous pouvez le voir ci-dessus, le code suivant instancie le contrôleur GC, assigne son délégué à ce contrôleur, définit l’état d’affichage du contrôleur pour montrer des classements et passe par votre LEADERBOARD_ID avant de présenter le contrôleur.

Maintenant, nous avons fini de codage, mais vous ne pouvez pas encore exécuter l’application. Si vous le faites, vous obtiendrez une erreur de Xcode, puisque vous n’avez pas créé votre propre classement sur la page iTunes Connect de votre application.

Configurez Game Center sur iTunes Connect

Vous devez déjà avoir créé une application iOS dans iTunes Connect avec votre propre identificateur Bundle. Maintenant, entrez votre application depuis votre tableau de bord iTunes Connect et cliquez sur Fonctionnalités, puis sur Game Center.

Puis cliquez sur l’icône + à côté de Classements.

App Features page on iTunes ConnectApp Features page on iTunes ConnectApp Features page on iTunes Connect

Choisir Classement sur l’écran suivant.

Add a leaderboardAdd a leaderboardAdd a leaderboard

Maintenant, vous avez à taper le nom que vous voulez donner à votre classement. Dans la capture d’écran ci-dessous, j’ai utilisé Mon nom de classement à titre d’exemple. Vous pouvez appeler le votre Classement des meilleurs scores ou comme vous le souhaitez.

Dans le ID du classement, collez la chaîne du LEADERBOARD_ID nous avons créé précédemment dans le projet Xcode.

Le score étant un nombre, sélectionnez Entier dans le champ Type de format du score. Vous pouvez choisir l’option souhaitée pour le Type d'envoi et l'Ordre. Ne remplissez pas l’Étendue de score (en option).

Enfin, cliquez sur le bouton Ajouter une langue.

Set leaderboards detailsSet leaderboards detailsSet leaderboards details

Dans la fenêtre popup, vous devez sélectionner la langue de votre classement. La valeur par défaut est toujours Anglais. Retapez le nom anglais de votre classement et sélectionnez un Format de score (j’ai choisi des virgules pour séparer les groupes de chiffres).

Les champs de Suffixe du format de score sont facultatifs; vous pouvez laissez les champs vides ou tapez le suffixe désiré. Par exemple, si votre jeu permet de marquer des points, vous pouvez taper « point » et « points » pour le pluriel, le contrôleur de Game Center ajoutera ce suffixe à la fin des scores affichés sur votre classement, comme « 1 point» ou « 100 points ».

Vous pouvez également ajouter une icône. L’image doit être un .jpeg, .jpg ou .png et au format 512 x 512 ou 1024 x 1024 pixels, au moins 72 DPI, et en couleur RVB sans fond transparent. Cliquez sur Choisir un fichier pour télécharger votre image.

Enfin cliquez sur Save, et vous avez terminé. Vous pouvez répéter les étapes ci-dessus pour ajouter plus de langues — Assurez-vous juste de mettre des noms de classement selon la langue sélectionnée.

Add a leaderboards languageAdd a leaderboards languageAdd a leaderboards language

Une fois que vous avez ajouté une fenêtre, vous pouvez consulter les détails de votre classement. Si tout va bien, cliquez sur Enregistrer et vous serez redirigé vers la page des fonctionnalités, avec votre nouveau classement.

Language added for a new leaderboardLanguage added for a new leaderboardLanguage added for a new leaderboard
Features pageFeatures pageFeatures page

Il est maintenant temps d'autoriser Game Center dans la section de l’App Store de votre App. Cliquez sur App Store et Préparer pour l'envoi.

App Store sectionApp Store sectionApp Store section

Faites défiler la page jusqu'à ce que vous trouviez Game Center avec un interrupteur à côté. Cliquez dessus et il deviendra vert. Puis cliquez sur le signe + à côté de Classements, sélectionnez votre classement dans la liste et cliquez sur Terminé.

Cliquez sur Enregistrer dans le coin supérieur droit de la fenêtre, et vous aurez terminé toutes les configurations Game Center sur iTunes Connect.

Save your app with Game Centers leaderboardSave your app with Game Centers leaderboardSave your app with Game Centers leaderboard

Vous pouvez maintenant revenir à votre projet Xcode et exécuter l’application sur un périphérique réel ou même sur l’iOS Simulator. Si vous n’êtes pas déjà connecté à Game Center, le contrôleur de connexion apparaîtra. Il ressemble à ceci :

Game Center Sing In screenGame Center Sing In screenGame Center Sing In screen

Connectez-vous avec vos informations d’identification, et vous pouvez commencer à tester l’app !

Dans notre méthode addScoreAndSubmitToGC(), nous avons ajouté l’appel print() suivant :

Donc si vous appuyez sur le bouton rouge, le scoreLabel affichera « 10 » et la console de Xcode affichera Meilleur score envoyé à votre classement !

Score updated and submitted to your leaderboardScore updated and submitted to your leaderboardScore updated and submitted to your leaderboard

Appuyez sur le bouton rouge trois fois et ensuite appuyez sur le bleu pour ouvrir votre classement et vérifier que le score soumis est 40. Vous devriez voir quelque chose comme ceci :

GC controller for leaderboardsGC controller for leaderboardsGC controller for leaderboards

Conclusion

Si vous voulez voir Game Center en action avec une application de jeu entièrement fonctionnelle, vous pouvez aller sur mon modèle de jeu de CodeCanyon Four Dots. C’est un modèle pour un jeu sans fin qui enregistre les meilleurs scores et les soumet à la Game Center.

Four Dots iOS app template on CodeCanyonFour Dots iOS app template on CodeCanyonFour Dots iOS app template on CodeCanyon

Les modèles de jeu comme celui-ci sont un excellent moyen d'obtenir une longueur d’avance sur votre prochain jeu. CodeCanyon a des centaines de modèles de jeu iOS que vous pouvez utiliser pour démarrer votre développement — vous permettant de créer le prochain jeu beaucoup plus vite !

Merci de m'avoir lu, et je vous verrai une prochaine fois ! Jetez un œil à certains de nos autres tutoriels sur le développement d’applications iOS et Swift.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.