Поиск…


Лидеры игр GameCenter

Предпосылки:

  1. Аккаунт Apple Developers
  2. Настройка лидеров GameCenter с iTunesConnect

Настройка лидеров GameCenter:

  1. Войдите в iTunesConnect
  2. Перейдите в « Мои приложения» . Создайте приложение для своего проекта, затем перейдите в « Особенности» .
  3. Нажмите на Game Center
  4. Нажмите знак «плюс» рядом с «Лидербордами».
  5. Выберите Single Leaderboard для типов Leaderboard.
  6. Создайте справочное имя Leaderboard для справки.
  7. Создайте идентификатор Leaderboard для вашего приложения, чтобы ссылаться на отчетность.
  8. Установите формат оценки в Integer
  9. Оценка результатов будет лучшим показателем
  10. Нажмите « Добавить язык» и заполните записи.

Скопируйте свой LeaderboardID который вы создали, и перейдете к Xcode.

Работа с Xcode

Есть 4 функции, с которыми мы будем работать.

  1. Импорт структуры и настройка протоколов

  2. Проверка входа пользователя в GameCenter

  3. Отчеты о результатах в GameCenter

  4. Просмотр лидеров

  5. Импорт GameKit import GameKit протоколов GKGameCenterControllerDelegate

  6. Теперь мы хотим проверить, подписан ли пользователь в 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. Теперь пользователь использует приложение, и внезапно у пользователя новый высокий балл, мы сообщаем о высоком балла, вызывая функцию ниже.

Функция ниже hols 2 параметра.

Identifier который определен как строка и используется для ввода вашего идентификатора руководителя, который вы создали в iTunesConnect.

score которая определяется как Int, которая будет оцениваться пользователями для 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. Теперь, если пользователь хочет просмотреть таблицы лидеров, вызовите функцию ниже
//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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow