iOS
GameCenter-Bestenlisten
Suche…
GameCenter-Bestenlisten
Voraussetzungen:
- Apple-Entwicklerkonto
- Richten Sie GameCenter-Bestenlisten mit iTunesConnect ein
Einrichten von GameCenter-Bestenlisten:
- Melden Sie sich bei iTunesConnect an
- Gehen Sie zu Meine Apps . Erstellen Sie eine App für Ihr Projekt und gehen Sie zu Features .
- Klicken Sie auf Game Center
- Klicken Sie auf das Pluszeichen neben Ranglisten.
- Wählen Sie Single Leaderboard für Leaderboard-Typen.
- Erstellen Sie einen Leaderboard-Referenznamen als Referenz.
- Erstellen Sie eine Leaderboard-ID für Ihre App, auf die bei der Berichterstellung von Scores verwiesen werden soll.
- Legen Sie das Score-Format auf Integer fest
- Score Submission wird Best Score
- 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.
Framework importieren und Protokolle einrichten
Überprüfen, ob der Benutzer bei GameCenter angemeldet ist
Die Ergebnisse an GameCenter melden
Bestenlisten anzeigen
Import GameKit
import GameKit
ProtokolleGKGameCenterControllerDelegate
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
}
}
}
- 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 {
}
})
}
}
- 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()
}