游戏中心不保存分数

Posted

技术标签:

【中文标题】游戏中心不保存分数【英文标题】:Game Center Not Saving Scores 【发布时间】:2017-02-14 18:57:45 【问题描述】:

Game Center 曾经在我制作的另一个应用程序中完美运行。然而,我现在的这个已经发生了大约两周的奇怪事情。

上传和下载报告没有错误,我可以看到我的分数很好。但是如果我停止玩我的游戏,然后在 6 小时后重新开始游戏,我的分数就不再存在于游戏中心。我的意思是,实际上根本没有得分。从 6 小时前运行的游戏中心下载现在无法检索我的分数。

游戏中心状态为实时。我可以在“管理分数”部分查看我的分数和其他分数。但是,除了GKGameCenterViewController 的排行榜中我的分数外,我什么都看不到。

就我而言,一切都已正确配置。应用中的 Game Center 功能已开启。

排行榜显示代码:

func showLeaderBoard() 
    if GKLocalPlayer.localPlayer().isAuthenticated == false 
        self.present(authenticationViewController!, animated: true, completion: nil)
        return
    

    let gamecenter = GKGameCenterViewController()
    gamecenter.gameCenterDelegate = self
    gamecenter.viewState = .leaderboards
    gamecenter.leaderboardIdentifier = leaderBoardID

    present(gamecenter, animated: true, completion: nil)

乐谱下载代码:

func downloadBestScoreFromGameCenter() 
    if GKLocalPlayer.localPlayer().isAuthenticated == false return
    print("Downloading Score...")

    let leaderBoard = GKLeaderboard()
    leaderBoard.identifier = leaderBoardID
    leaderBoard.loadScores(completionHandler: 
        [unowned self] (scores, error) in

        print("Download Error: \(error)")

        scores?.forEach(print("\($0.player?.displayName!) \($0.value)"))

        if let localPlayerScore = leaderBoard.localPlayerScore?.value 
            self.bestScore = Int(localPlayerScore)
            self.saveGameForCurrentState()
         else 
            self.bestScore = 0
        
    )

上传

func uploadBestScoreToGameCenter() 
    if GKLocalPlayer.localPlayer().isAuthenticated == false return

    let scoreItem = GKScore(leaderboardIdentifier: leaderBoardID)
    scoreItem.value = Int64(self.bestScore)

    GKScore.report([scoreItem], withCompletionHandler: 
        (error) in
        if let error = error 
            print(error)
         else 
            print("Upload complete: \(scoreItem.value)")
        
    )

【问题讨论】:

【参考方案1】:

好的,排行榜现在正在运行。我猜你只需要等人。

【讨论】:

以上是关于游戏中心不保存分数的主要内容,如果未能解决你的问题,请参考以下文章

保存游戏分数

使用 NSUser Defaults 保存当前游戏分数(不是高分)?

将游戏的高分保存到文件然后访问它们,如何?

从 Google Play 游戏服务获取用户分数?

以安全格式存储游戏偏好和保存的游戏

Java:将字符串保存到文件