iOS
Classifiche di GameCenter
Ricerca…
Classifiche di GameCenter
Prerequisiti:
- Account per sviluppatori Apple
- Imposta le classifiche GameCenter con iTunesConnect
Impostazione delle classifiche di GameCenter:
- Accedi a iTunesConnect
- Vai a Le mie app . Crea un'app per il tuo progetto quindi vai a Funzionalità .
- Clicca su Game Center
- Fai clic sul segno più accanto a Classifiche.
- Scegli Single Leaderboard per i tipi di classifica.
- Crea un nome di riferimento della classifica per il tuo riferimento.
- Crea un ID classifica per la tua app a cui fare riferimento quando segnali i punteggi.
- Imposta il formato del punteggio su Integer
- L'invio del punteggio sarà il miglior punteggio
- Fai clic su Aggiungi lingua e riempi le voci.
Copia il tuo LeaderboardID
che hai creato e passa a Xcode.
Lavorare con Xcode
Ci sono 4 funzioni con le quali lavoreremo.
Importazione del framework e impostazione dei protocolli
Verifica se l'utente ha effettuato l'accesso a GameCenter
Segnalazione dei punteggi a GameCenter
Visualizzazione delle classifiche
Importa
import GameKit
ProtocolliGKGameCenterControllerDelegate
Ora vogliamo verificare se l'utente ha effettuato l'accesso a 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
}
}
}
- Ora l'utente sta utilizzando l'app e improvvisamente l'utente ha un nuovo punteggio elevato, riportiamo il punteggio più alto chiamando la funzione seguente.
La funzione sotto hols 2 parametri.
Identifier
che è definito come una stringa e utilizzato per inserire il leaderboardID che hai creato in iTunesConnect.
score
che è definito come Int che sarà il punteggio degli utenti da inviare a 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 {
}
})
}
}
- Ora se l'utente vuole vedere le classifiche, chiama la funzione qui sotto
//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()
}