Game Center est le réseau de jeu social d'Apple. Il permet aux utilisateurs de suivre leurs meilleurs scores dans un classement, de comparer leurs réalisations, d'inviter des amis à jouer à un jeu et de démarrer une partie multijoueur par correspondance automatique. Donc, si vous avez créé un jeu iOS et souhaitez que les utilisateurs puissent publier leurs scores dans un classement Game Center, ce didacticiel est fait pour vous.!
Pour plus d'informations sur les applications et le Game Center, visitez sa page Développeurs Apple..
Pour les besoins de ce tutoriel, j'ai créé un projet Xcode de base que vous pouvez télécharger à partir de GitHub. J'expliquerai toutes les étapes nécessaires à la création d'un classement sur iTunes Connect et le code nécessaire pour soumettre un score, ainsi qu'un bouton permettant d'ouvrir le classement à partir de l'application..
Voici à quoi ressemble le Storyboard de l'application:
Ce projet a un UILabel avec le texte rouge j'ai appelé scoreLabel
et un couple de UIButtons. Le rouge ajoutera 10 points au score et le soumettra à un classement Game Center, et le bleu ouvrira le GKGameCenterViewController et montrer ce classement.
La toute première chose à faire est de permettre Centre de jeu dans le Les capacités onglet dans Xcode.
Ensuite, vous devez importer GameKit en haut de votre ViewController.swift déposer et ajouter le GKGameCenterControllerDelegate
protocole à la déclaration de classe.
classe GameKit import ViewController: UIViewController, GKGameCenterControllerDelegate
Ajoutons maintenant quelques variables. Vous pouvez coller ce code directement dans votre ViewController
classe:
/ * Variables * / var gcEnabled = Bool () // Vérifie si l'utilisateur a activé Game Center var gcDefaultLeaderBoard = String () // Vérifie le classement par défaut var score = 0 // IMPORTANT: remplacez la chaîne rouge ci-dessous par votre propre tableau de classement. ID (celui que vous avez défini dans iTunes Connect), laissez LEADERBOARD_ID = "com.score.mygamename"
La première variable indique si vous avez activé Game Center, et la seconde sera utilisée plus tard par le code d'authentification du joueur local pour permettre à GameKit d'identifier le classement par défaut..
But
sera initialement 0, bien sûr.
LEADERBOARD_ID
est un Chaîne
que vous devez définir pour que Game Center soumette votre score au serveur via l'identifiant de classement par défaut. Choisissez le nom que vous voulez, mais gardez à l'esprit qu'il doit avoir une syntaxe inversée sur le Web. C'est pourquoi j'ai identifié ce classement comme com.score.mygamename
, où mygamename
doit être remplacé par le nom de votre application en minuscules, sans espaces.
Avant d'activer Game Center sur la page iTunes Connect de votre application, finissons le code de base. Ajouter cette ligne dans viewDidLoad ()
:
// Appelez le contrôleur d'authentification GC authenticateLocalPlayer ()
Et ajoutez la fonction suivante juste en dessous viewDidLoad ()
:
// MARK: - AUTHENTICATE LOCAL PLAYER func authenticateLocalPlayer () let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer () localPlayer.authenticateHandler = (ViewController, error) -> Nul dans ((ViewController)! = 1). Afficher l'identifiant de connexion si le joueur n'est pas connecté à soi-même (ViewController !, animé: true, complétion: nil) else if (localPlayer.isAuthenticated) // 2. Le joueur est déjà authentifié et connecté, chargez le centre de jeu. gcEnabled = true // Récupère l'ID de classement par défaut localPlayer.loadDefaultLeaderboardIdentifier (completionHandler: (leaderboardIdentifer, erreur) dans si erreur! = nil print (erreur) else self.gcDefaultLeaderBoard = leaderboardIdentifer!) else // 3. Le centre de jeu n'est pas activé sur le périphérique de l'utilisateur self.gcEnabled = false print ("Le lecteur local n'a pas pu être authentifié!") Print (error)
Si un utilisateur ne s'est pas connecté à Game Center depuis les paramètres de son appareil, la méthode ci-dessus affiche l'écran de connexion de Game Center dès qu'il se connecte au serveur du GC. Une fois le joueur connecté, l'application obtient l'identifiant de classement par défaut..
Dans la prochaine méthode, nous ferons en sorte que l'application récupère le LEADERBOARD_ID
chaîne que vous avez précédemment créée et transmettez-la comme identifiant de classement par défaut du serveur Game Center.
// MARK: - AJOUTEZ 10 POINTS À LA SCORE ET SOUMETTEZ LA SCORE MISE À JOUR AU CENTRE DE JEU @IBAction func addScoreAndSubmitToGC (_ expéditeur: AnyObject) // Ajoutez 10 points au score actuel. Score = = 10 scoreLabel.text = "\ (score ) "// Soumettre le score au classement GC, laissez bestScoreInt = GKScore (leaderboardIdentifier: LEADERBOARD_ID) bestScoreInt.value = Int64 (score) GKScore.report ([bestScoreInt]) (erreur) dans si erreur! = Nil impression (erreur !. localizedDescription) else print ("Meilleur score soumis à votre classement!")
Le code ci-dessus ajoute également 10 points au score actuel, donc chaque fois que vous cliquez sur le Ajouter le score et soumettre au GC bouton, vous verrez l’étiquette du score rouge changer et l’application soumettra le score mis à jour à votre classement GC..
Vous devez maintenant ajouter un GameKit méthode déléguée qui congédiera le contrôleur du GC.
// Déléguer de quitter le contrôleur GC funC gameCenterViewControllerDidFinish (_ gameCenterViewController: GKGameCenterViewController) gameCenterViewController.dismiss (animé: true, complétion: nil)
Il ne reste plus qu’une méthode pour coder avant de créer votre classement sur iTunes Connect, l’action du bouton qui ouvrira le Game Center.ViewController
.
// MARQUE: - OPEN GAME CENTER LEADERBOARD @IBAction func checkGCLeaderboard (_ expéditeur: AnyObject) let gcVC = GKGameCenterViewController () achèvement: nul)
Comme vous pouvez le voir ci-dessus, ce code instancie le contrôleur GC, assigne son délégué à ce contrôleur, définit l'état d'affichage du contrôleur pour afficher les classements et transmet votre LEADERBOARD_ID
avant de présenter le contrôleur.
Nous avons maintenant fini de coder, 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 dans la page iTunes Connect de votre application..
Vous devez déjà avoir créé une application iOS dans iTunes Connect avec votre propre identifiant de paquet. Maintenant, entrez votre application à partir de votre tableau de bord iTunes Connect, puis cliquez sur Caractéristiques et alors Centre de jeu.
Puis cliquez sur le + icône à côté de Classements.
Choisir Classement unique sur l'écran suivant.
Ici, vous devez taper le nom que vous voulez donner à votre classement. Dans la capture d'écran ci-dessous, j'ai utilisé Mon nom dans le classement juste à titre d'exemple. Vous pouvez appeler le vôtre Meilleur classement ou tout ce que vous souhaitez.
dans le ID du classement champ, coller la chaîne du LEADERBOARD_ID
nous avons déjà créé dans le projet Xcode.
Le score étant un nombre, sélectionnez Entier dans le Type de format de partition champ. Vous pouvez choisir l'option que vous voulez pour Type de soumission et Ordre de tri. Laisser Plage de score (facultatif) blanc.
Enfin, cliquez sur le Ajouter une langue bouton.
Dans la fenêtre contextuelle, vous devez sélectionner la langue de votre classement. La valeur par défaut est toujours l'anglais. Tapez le nom anglais de votre classement à nouveau, puis sélectionnez un Format de partition (J'ai choisi des virgules pour séparer les groupes de chiffres).
le Score suffixe de format les champs sont facultatifs; vous pouvez laisser les deux champs vides ou taper le suffixe souhaité. Par exemple, si votre jeu a des points, vous pouvez taper "point" et "points" au pluriel, ainsi 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 fichier .jpeg, .jpg ou .png de 512x512 ou 1024x1024 pixels, d'au moins 72 DPI et dans l'espace colorimétrique RVB sans arrière-plan transparent. Cliquez sur Choisir le fichier télécharger votre image.
Enfin cliquez sauvegarder, et tu as fini. Vous pouvez répéter les étapes ci-dessus pour ajouter plus de langues. Assurez-vous simplement de taper les noms de classement en fonction de la langue sélectionnée..
Une fois que vous avez ajouté une fenêtre, vous pouvez vérifier les détails de votre classement. Si tout va bien, cliquez sur sauvegarder, et vous serez redirigé vers la page des fonctionnalités avec votre tout nouveau classement.
Il est maintenant temps d'activer Game Center dans la section App Store de votre application. Cliquez sur Magasin d'applications et Préparer la soumission.
Faites défiler jusqu'à trouver Centre de jeu avec un interrupteur à côté. Activez ceci et il deviendra vert. Puis cliquez sur le + signe à côté de Classements, sélectionnez votre classement dans la liste, puis cliquez sur Terminé.
Cliquez sur sauvegarder dans le coin supérieur droit de la fenêtre, et vous aurez terminé de configurer Game Center sur iTunes Connect..
Vous pouvez maintenant revenir à votre projet Xcode et exécuter l'application sur un périphérique réel ou même sur le simulateur iOS. Si vous n'êtes pas déjà connecté à Game Center, le contrôleur de connexion apparaîtra. Cela ressemble à ceci:
Connectez-vous avec vos informations d'identification et vous pourrez commencer à tester l'application.!
Dans notre addScoreAndSubmitToGC ()
méthode, nous avons ajouté ce qui suit impression()
appel:
print ("Meilleur score soumis à votre classement!")
Donc, si vous appuyez sur le bouton rouge, le scoreLabel
affichera "10", et la console Xcode imprimera Meilleur score soumis à votre classement!
Appuyez trois fois sur le bouton rouge, puis appuyez sur le bouton bleu pour ouvrir votre classement et vérifiez que le score soumis est de 40. Vous devriez voir quelque chose comme ceci:
Si vous souhaitez voir Game Center en action avec une application de jeu entièrement fonctionnelle, vous pouvez consulter mon modèle de jeu CodeCanyon, Four Dots. C'est un modèle pour un jeu sans fin minimal qui enregistre les meilleurs scores et les soumet au Game Center..
Les modèles de jeu comme celui-ci sont un excellent moyen de prendre une longueur d'avance sur votre prochain match. CodeCanyon propose des centaines de modèles de jeu iOS que vous pouvez utiliser pour relancer le développement, ce qui vous permet de créer le jeu Killer le plus rapidement possible!
Merci d'avoir lu et à la prochaine fois! Veuillez consulter certains de nos autres tutoriels sur le développement d'applications Swift et iOS..