iOS Tablas de clasificación de GameCenter


Ejemplo

Requisitos previos:

  1. Cuenta de desarrolladores de Apple
  2. Configura las tablas de clasificación de GameCenter con iTunesConnect

Configuración de tablas de clasificación de GameCenter:

  1. Inicia sesión en iTunesConnect
  2. Ir a Mis Aplicaciones . Crea una aplicación para tu proyecto y luego ve a Características .
  3. Haga clic en Game Center
  4. Haga clic en el signo más junto a Tablas de clasificación.
  5. Elija Tabla de clasificación individual para los tipos de Tabla de clasificación.
  6. Cree un nombre de referencia de la tabla de clasificación para su referencia.
  7. Cree una ID de tabla de clasificación para que su aplicación se refiera a cuando informe las puntuaciones.
  8. Establecer formato de puntuación en entero
  9. La sumisión del puntaje será la mejor puntuación
  10. Haga clic en Agregar idioma y complete las entradas.

Copia tu LeaderboardID que hiciste y te permite ir a Xcode.

Trabajando con Xcode

Hay 4 funciones con las que trabajaremos.

  1. Importando el framework y configurando los protocolos.

  2. Comprobando si el usuario ha iniciado sesión en GameCenter

  3. Reportar los puntajes a GameCenter

  4. Viendo tablas de clasificación

  5. Importar GameKit import GameKit Protocolos GKGameCenterControllerDelegate

  6. Ahora queremos comprobar si el usuario ha iniciado sesión en 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. Ahora el usuario está utilizando la aplicación y, de repente, el usuario tiene una nueva puntuación más alta. Informamos la puntuación más alta llamando a la siguiente función.

La función de abajo hols 2 parámetros.

Identifier que se define como una cadena y se usa para ingresar su ID de tabla de líderes que creó en iTunesConnect.

score que se define como un Int, que será el puntaje que los usuarios enviarán 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. Ahora, si el usuario quiere ver tablas de clasificación, llame a la siguiente función
//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()
        
    }