iOS Classifiche di GameCenter

Esempio

Prerequisiti:

  1. Account per sviluppatori Apple
  2. Imposta le classifiche GameCenter con iTunesConnect

Impostazione delle classifiche di GameCenter:

  1. Accedi a iTunesConnect
  2. Vai a Le mie app . Crea un'app per il tuo progetto quindi vai a Funzionalità .
  3. Clicca su Game Center
  4. Fai clic sul segno più accanto a Classifiche.
  5. Scegli Single Leaderboard per i tipi di classifica.
  6. Crea un nome di riferimento della classifica per il tuo riferimento.
  7. Crea un ID classifica per la tua app a cui fare riferimento quando segnali i punteggi.
  8. Imposta il formato del punteggio su Integer
  9. L'invio del punteggio sarà il miglior punteggio
  10. Fai clic su Aggiungi lingua e riempi le voci.

Copia il tuo LeaderboardID che hai creato e passa a Xcode.

Lavorare con Xcode

Ci sono 4 funzioni con le quali lavoreremo.

  1. Importazione del framework e impostazione dei protocolli

  2. Verifica se l'utente ha effettuato l'accesso a GameCenter

  3. Segnalazione dei punteggi a GameCenter

  4. Visualizzazione delle classifiche

  5. Importa import GameKit Protocolli GKGameCenterControllerDelegate

  6. Ora vogliamo verificare se l'utente ha effettuato l'accesso a 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. Ora l'utente sta utilizzando l'app e improvvisamente l'utente ha un nuovo punteggio elevato, riportiamo il punteggio più alto chiamando la funzione seguente.

La funzione sotto hols 2 parametri.

Identifier che è definito come una stringa e utilizzato per inserire il leaderboardID che hai creato in iTunesConnect.

score che è definito come Int che sarà il punteggio degli utenti da inviare a 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. Ora se l'utente vuole vedere le classifiche, chiama la funzione qui sotto
//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()
        
    }