Szukaj…


Tabele wyników GameCenter

Wymagania wstępne:

  1. Konto programistów Apple
  2. Skonfiguruj liderów GameCenter za pomocą iTunesConnect

Konfigurowanie liderów GameCenter:

  1. Zaloguj się do iTunesConnect
  2. Przejdź do Moich aplikacji . Utwórz aplikację dla swojego projektu, a następnie przejdź do funkcji .
  3. Kliknij Game Center
  4. Kliknij znak plus obok Tabeli wyników.
  5. Wybierz Pojedynczą tabelę wyników dla typów tabeli wyników.
  6. Utwórz nazwę odniesienia do tablicy wyników dla swojego odniesienia.
  7. Utwórz identyfikator liderów dla swojej aplikacji, do którego będą się odnosić podczas raportowania wyników.
  8. Ustaw format wyniku na Integer
  9. Zgłoszenie wyniku będzie najlepszym wynikiem
  10. Kliknij Dodaj język i wypełnij wpisy.

Skopiuj utworzony LeaderboardID przejdź do Xcode.

Praca z Xcode

Będziemy pracować z 4 funkcjami.

  1. Importowanie frameworka i konfigurowanie protokołów

  2. Sprawdzanie, czy użytkownik jest zalogowany w GameCenter

  3. Raportowanie wyników do GameCenter

  4. Wyświetlanie tabel wyników

  5. Importuj GKGameCenterControllerDelegate import GameKit GKGameCenterControllerDelegate Protokoły GKGameCenterControllerDelegate

  6. 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
            }
        }
    }
  1. 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 {
                    
                    
                }
            })
        }
    }
  1. 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()
        
    }


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow