游戏中心:如何避免开始我的游戏,直到游戏中心登录屏幕解散?

时间:2016-05-30 02:09:29

标签: ios swift sprite-kit delegates game-center

当我的游戏加载时,如果玩家未登录游戏中心,则会弹出登录视图,但大约需要5秒钟。如果玩家在5秒内触摸屏幕开始游戏,我的游戏开始,然后登录出现在游戏中间,这是一种糟糕的体验。

我的游戏在触摸屏幕时开始,我如何延迟游戏开始直到登录视图出现?

一旦我的游戏加载

,就会在我的GameScene中调用
 func authPlayer() {
    let localPlayer = GKLocalPlayer.localPlayer()
    print("auth")

    localPlayer.authenticateHandler = {
        (view, error) in

        if view != nil {
            let vc = self.view!.window?.rootViewController

            vc?.presentViewController(view!, animated: true, completion: nil)

        }
        else {
            print(GKLocalPlayer.localPlayer().authenticated)

        }

    }
}

这在我的游戏结束时被称为发布分数。

func saveHighscoreToGameCenter(number : Int) {
    if GKLocalPlayer.localPlayer().authenticated {

        let scoreReporter = GKScore(leaderboardIdentifier: "mmleaderboard")
        scoreReporter.value = Int64(number)

        let scoreArray : [GKScore] = [scoreReporter]
        GKScore.reportScores(scoreArray, withCompletionHandler: nil)
    }
}

func showLeaderboard() {
    let viewController = self.view!.window?.rootViewController
    let gcvc = GKGameCenterViewController()

    gcvc.gameCenterDelegate = self

    viewController?.presentViewController(gcvc, animated: true, completion: nil)

}

func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
    gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
}

0 个答案:

没有答案