iOS
GameCenter Leaderboards
Sök…
GameCenter Leaderboards
förutsättningar:
- Apple-utvecklare-konto
- Ställ in GameCenter Leaderboards med iTunesConnect
Ställa in GameCenter Leaderboards:
- Logga in på iTunesConnect
- Gå till Mina appar . Skapa en app för ditt projekt och gå sedan till Funktioner .
- Klicka på Game Center
- Klicka på plustecknet bredvid Leaderboards.
- Välj Single Leaderboard för Leaderboard-typer.
- Skapa ett Leaderboard-referensnamn som referens.
- Skapa ett Leaderboard-ID för din app att hänvisa till när du rapporterar poäng.
- Ställ in poängformat till heltal
- Poänginlämning blir Bästa poäng
- 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.
Importera ramverket och konfigurera protokollen
Kontrollera om användaren är inloggad på GameCenter
Rapportera poängen till GameCenter
Visar topplistor
Importera GameKit
import GameKit
protokollGKGameCenterControllerDelegate
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
}
}
}
- 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 {
}
})
}
}
- 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()
}