Zoeken…


GameCenter Leaderboards

Vereisten:

  1. Apple ontwikkelaarsaccount
  2. GameCenter Leaderboards instellen met iTunesConnect

GameCenter Leaderboards instellen:

  1. Meld u aan bij iTunesConnect
  2. Ga naar Mijn apps . Maak een app voor uw project en ga vervolgens naar Functies .
  3. Klik op Game Center
  4. Klik op het plusteken naast Leaderboards.
  5. Kies Single Leaderboard voor Leaderboard-typen.
  6. Maak een Leaderboard-referentienaam voor uw referentie.
  7. Maak een Leaderboard-ID voor uw app om naar te verwijzen wanneer u scores rapporteert.
  8. Stel score-indeling in op Geheel getal
  9. Score inzending is de beste score
  10. Klik op Taal toevoegen en vul de gegevens in.

Kopieer je LeaderboardID die je hebt gemaakt en ga naar Xcode.

Werken met Xcode

Er zijn 4 functies waarmee we zullen werken.

  1. Het raamwerk importeren en de protocollen instellen

  2. Controleren of de gebruiker is aangemeld bij GameCenter

  3. Rapportage van de scores aan GameCenter

  4. Leaderboards bekijken

  5. GameKit import GameKit protocollen import GameKit GKGameCenterControllerDelegate

  6. Nu willen we controleren of de gebruiker is aangemeld bij 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 gebruikt de gebruiker de app en plotseling heeft de gebruiker een nieuwe topscore. We rapporteren de topscore door de onderstaande functie aan te roepen.

De functie hieronder omvat 2 parameters.

Identifier die is gedefinieerd als een tekenreeks en wordt gebruikt om uw leaderboard-ID in te voeren die u in iTunesConnect hebt gemaakt.

score die wordt gedefinieerd als een Int. Dit is de gebruikersscore die moet worden ingediend bij 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. Als de gebruiker nu leaderboards wil bekijken, roept u de onderstaande functie aan
//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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow