iOS
Classements GameCenter
Recherche…
Classements GameCenter
Conditions préalables:
- Compte des développeurs Apple
- Configuration des classements GameCenter avec iTunesConnect
Configuration des classements GameCenter:
- Connectez-vous à iTunesConnect
- Accédez à Mes applications . Créez une application pour votre projet, puis accédez à Fonctionnalités .
- Cliquez sur Game Center
- Cliquez sur le signe plus à côté de Leaderboards.
- Choisissez le classement unique pour les types de classement.
- Créez un nom de référence de classement pour votre référence.
- Créez un ID de classement auquel votre application peut faire référence lors de la génération de rapports.
- Définir le format de partition sur Integer
- La soumission de score sera le meilleur score
- Cliquez sur Ajouter une langue et remplissez les entrées.
Copiez votre LeaderboardID
que vous avez créé et laissez-vous aller à Xcode.
Travailler avec Xcode
Il y a 4 fonctions avec lesquelles nous allons travailler.
Importer le framework et configurer les protocoles
Vérifier si l'utilisateur est connecté à GameCenter
Signaler les scores à GameCenter
Affichage des classements
Importation de l'
import GameKit
ProtocolesGKGameCenterControllerDelegate
Maintenant, nous voulons vérifier si l'utilisateur est connecté à GameCenter
func authenticateLocalPlayer() {
let localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = { (viewController, error) -> Void in
if viewController != nil {
//If the user is not signed in to GameCenter, we make them sign in
let vc:UIViewController = self.view!.window!.rootViewController!
vc.presentViewController(viewController!, animated: true, completion: nil)
} else {
//Do something here if you want
}
}
}
- Maintenant, l'utilisateur utilise l'application et soudain, l'utilisateur a un nouveau score élevé, nous rapportons le score élevé en appelant la fonction ci-dessous.
La fonction ci-dessous affiche 2 paramètres.
Identifier
qui est défini comme une chaîne et utilisé pour entrer votre classement qui a été créé dans iTunesConnect.
score
qui est défini comme un Int qui sera le score des utilisateurs à soumettre à iTunesConnect
func saveHighScore(identifier:String, score:Int) {
if GKLocalPlayer.localPlayer().authenticated {
let scoreReporter = GKScore(leaderboardIdentifier: identifier)
scoreReporter.value = Int64(score)
let scoreArray:[GKScore] = [scoreReporter]
GKScore.reportScores(scoreArray, withCompletionHandler: {
error -> Void in
if error != nil {
print("Error")
} else {
}
})
}
}
- Maintenant, si l'utilisateur veut voir les classements, appelez la fonction ci-dessous
//This function will show GameCenter leaderboards and Achievements if you call this function.
func showGameCenter() {
let gameCenterViewController = GKGameCenterViewController()
gameCenterViewController.gameCenterDelegate = self
let vc:UIViewController = self.view!.window!.rootViewController!
vc.presentViewController(gameCenterViewController, animated: true, completion:nil)
}
//This function closes gameCenter after showing.
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
self.gameCenterAchievements.removeAll()
}