Recherche…


Classements GameCenter

Conditions préalables:

  1. Compte des développeurs Apple
  2. Configuration des classements GameCenter avec iTunesConnect

Configuration des classements GameCenter:

  1. Connectez-vous à iTunesConnect
  2. Accédez à Mes applications . Créez une application pour votre projet, puis accédez à Fonctionnalités .
  3. Cliquez sur Game Center
  4. Cliquez sur le signe plus à côté de Leaderboards.
  5. Choisissez le classement unique pour les types de classement.
  6. Créez un nom de référence de classement pour votre référence.
  7. Créez un ID de classement auquel votre application peut faire référence lors de la génération de rapports.
  8. Définir le format de partition sur Integer
  9. La soumission de score sera le meilleur score
  10. 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.

  1. Importer le framework et configurer les protocoles

  2. Vérifier si l'utilisateur est connecté à GameCenter

  3. Signaler les scores à GameCenter

  4. Affichage des classements

  5. Importation de l' import GameKit Protocoles GKGameCenterControllerDelegate

  6. 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
            }
        }
    }
  1. 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 {
                    
                    
                }
            })
        }
    }
  1. 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()
        
    }


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow