Suche…


GameCenter-Bestenlisten

Voraussetzungen:

  1. Apple-Entwicklerkonto
  2. Richten Sie GameCenter-Bestenlisten mit iTunesConnect ein

Einrichten von GameCenter-Bestenlisten:

  1. Melden Sie sich bei iTunesConnect an
  2. Gehen Sie zu Meine Apps . Erstellen Sie eine App für Ihr Projekt und gehen Sie zu Features .
  3. Klicken Sie auf Game Center
  4. Klicken Sie auf das Pluszeichen neben Ranglisten.
  5. Wählen Sie Single Leaderboard für Leaderboard-Typen.
  6. Erstellen Sie einen Leaderboard-Referenznamen als Referenz.
  7. Erstellen Sie eine Leaderboard-ID für Ihre App, auf die bei der Berichterstellung von Scores verwiesen werden soll.
  8. Legen Sie das Score-Format auf Integer fest
  9. Score Submission wird Best Score
  10. Klicken Sie auf Sprache hinzufügen und füllen Sie die Einträge aus.

Kopieren Sie Ihre LeaderboardID , die Sie erstellt haben, und lassen Sie sich zu Xcode übergehen.

Mit Xcode arbeiten

Es gibt 4 Funktionen, mit denen wir arbeiten werden.

  1. Framework importieren und Protokolle einrichten

  2. Überprüfen, ob der Benutzer bei GameCenter angemeldet ist

  3. Die Ergebnisse an GameCenter melden

  4. Bestenlisten anzeigen

  5. Import GameKit import GameKit Protokolle GKGameCenterControllerDelegate

  6. Jetzt möchten wir überprüfen, ob der Benutzer bei GameCenter angemeldet ist

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. Jetzt verwendet der Benutzer die App und plötzlich hat der Benutzer einen neuen Highscore. Wir melden den Highscore, indem wir die Funktion unten aufrufen.

Die Funktion unterhält 2 Parameter.

Identifier der als Zeichenfolge definiert ist und zur Eingabe Ihrer in iTunesConnect erstellten LeaderboardID verwendet wird.

score der als Int definiert ist, wobei der Score des Benutzers an iTunesConnect übermittelt wird

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. Wenn der Benutzer die Bestenlisten anzeigen möchte, rufen Sie die folgende Funktion auf
//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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow