当我的游戏加载时,如果玩家未登录游戏中心,则会弹出登录视图,但大约需要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)
}