Sök…


GameCenter Leaderboards

förutsättningar:

  1. Apple-utvecklare-konto
  2. Ställ in GameCenter Leaderboards med iTunesConnect

Ställa in GameCenter Leaderboards:

  1. Logga in på iTunesConnect
  2. Gå till Mina appar . Skapa en app för ditt projekt och gå sedan till Funktioner .
  3. Klicka på Game Center
  4. Klicka på plustecknet bredvid Leaderboards.
  5. Välj Single Leaderboard för Leaderboard-typer.
  6. Skapa ett Leaderboard-referensnamn som referens.
  7. Skapa ett Leaderboard-ID för din app att hänvisa till när du rapporterar poäng.
  8. Ställ in poängformat till heltal
  9. Poänginlämning blir Bästa poäng
  10. Klicka på Lägg till språk och fyll i posterna.

Kopiera ditt LeaderboardID som du har gjort och låt dig gå över till Xcode.

Arbetar med Xcode

Det finns fyra funktioner som vi kommer att arbeta med.

  1. Importera ramverket och konfigurera protokollen

  2. Kontrollera om användaren är inloggad på GameCenter

  3. Rapportera poängen till GameCenter

  4. Visar topplistor

  5. Importera GameKit import GameKit protokoll GKGameCenterControllerDelegate

  6. Nu vill vi kontrollera om användaren är inloggad på 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. Nu använder användaren appen och plötsligt har användaren en ny hög poäng, rapporterar vi hög poäng genom att ringa funktionen nedan.

Funktionen nedan innehåller två parametrar.

Identifier som definieras som en sträng och används för att ange ditt leaderboard-ID som du gjorde i iTunesConnect.

score som definieras som en Int som kommer att vara användarnas poäng att skicka till 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. Om användaren nu vill se topplistor, ring funktionen nedan
//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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow