iOS
GameCenter Leaderboards
Zoeken…
GameCenter Leaderboards
Vereisten:
- Apple ontwikkelaarsaccount
- GameCenter Leaderboards instellen met iTunesConnect
GameCenter Leaderboards instellen:
- Meld u aan bij iTunesConnect
- Ga naar Mijn apps . Maak een app voor uw project en ga vervolgens naar Functies .
- Klik op Game Center
- Klik op het plusteken naast Leaderboards.
- Kies Single Leaderboard voor Leaderboard-typen.
- Maak een Leaderboard-referentienaam voor uw referentie.
- Maak een Leaderboard-ID voor uw app om naar te verwijzen wanneer u scores rapporteert.
- Stel score-indeling in op Geheel getal
- Score inzending is de beste score
- 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.
Het raamwerk importeren en de protocollen instellen
Controleren of de gebruiker is aangemeld bij GameCenter
Rapportage van de scores aan GameCenter
Leaderboards bekijken
GameKit
import GameKit
protocollenimport GameKit
GKGameCenterControllerDelegate
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
}
}
}
- 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 {
}
})
}
}
- 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()
}