iOS
Tabele wyników GameCenter
Szukaj…
Tabele wyników GameCenter
Wymagania wstępne:
- Konto programistów Apple
- Skonfiguruj liderów GameCenter za pomocą iTunesConnect
Konfigurowanie liderów GameCenter:
- Zaloguj się do iTunesConnect
- Przejdź do Moich aplikacji . Utwórz aplikację dla swojego projektu, a następnie przejdź do funkcji .
- Kliknij Game Center
- Kliknij znak plus obok Tabeli wyników.
- Wybierz Pojedynczą tabelę wyników dla typów tabeli wyników.
- Utwórz nazwę odniesienia do tablicy wyników dla swojego odniesienia.
- Utwórz identyfikator liderów dla swojej aplikacji, do którego będą się odnosić podczas raportowania wyników.
- Ustaw format wyniku na Integer
- Zgłoszenie wyniku będzie najlepszym wynikiem
- Kliknij Dodaj język i wypełnij wpisy.
Skopiuj utworzony LeaderboardID
przejdź do Xcode.
Praca z Xcode
Będziemy pracować z 4 funkcjami.
Importowanie frameworka i konfigurowanie protokołów
Sprawdzanie, czy użytkownik jest zalogowany w GameCenter
Raportowanie wyników do GameCenter
Wyświetlanie tabel wyników
Importuj
GKGameCenterControllerDelegate
import GameKit
GKGameCenterControllerDelegate
ProtokołyGKGameCenterControllerDelegate
Teraz chcemy sprawdzić, czy użytkownik jest zalogowany w 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
}
}
}
- Teraz użytkownik korzysta z aplikacji i nagle użytkownik ma nowy wysoki wynik, zgłaszamy wysoki wynik, wywołując funkcję poniżej.
Funkcja poniżej zawiera 2 parametry.
Identifier
który jest zdefiniowany jako ciąg znaków i służy do wprowadzenia Identifier
liderów, który został utworzony w iTunesConnect.
score
który jest zdefiniowany jako Int, który będzie wynikiem użytkowników przesłanym do 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 {
}
})
}
}
- Teraz, jeśli użytkownik chce wyświetlić tabele wyników, wywołaj funkcję poniżej
//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()
}