• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - Swift 3 Game Center 排行榜不保存分数值

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:35:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个问题,请帮助我理解主题。老实说,我花了几天时间研究这个主题,但它还没有工作。

SpriteKit 上有一个简单的游戏,Swift 3。

我正在尝试实现排行榜游戏中心。

iTunes Connect 已设置,排行榜已创建,测试用户已创建。

当我开始游戏时,用户按照他们应该登录的方式登录。显示创建的棋盘的按钮,我可以在 Game Center 中打开我的排行榜。

问题是排行榜中得分的值没有更新。

我的游戏分数存储在变量“score”中 在 gamescene.swift 中,我有两个函数用于保存和覆盖:

func saveHighscore(gameScore: Int) {
        if GKLocalPlayer.localPlayer().isAuthenticated {
        print("\n Success! Sending highscore of \(score) to leaderboard")
        let scoreReporter = GKScore(leaderboardIdentifier: “MY_ID_THERE”)
        scoreReporter.value = Int64(gameScore)
        let scoreArray: [GKScore] = [scoreReporter]
        GKScore.report(scoreArray, withCompletionHandler: {error -> Void in
            if error != nil {
                print("An error has occured: \(String(describing: error))")
            }
        })
    }
}


 func overrideHighestScore(gameScore: Int) {
    UserDefaults.standard.integer(forKey: "highestScore")
    if gameScore > UserDefaults.standard.integer(forKey: "highestScore") {
        UserDefaults.standard.set(gameScore, forKey: "highestScore")
        UserDefaults.standard.synchronize()
        saveHighscore(gameScore: score)
        print(score.hashValue)
    }
}

当我按下按钮时我调用了这两个函数

saveHighscore (gameScore: score)

overrideHighestScore (gameScore: score)

控制台正确显示输出,例如,当收集五个点时,输出将是一条消息,称为:

Success! Sending the highscore of 5 to the leaderboard

但是游戏中心中的变量 score 的值没有发送,并且在第一次访问棋盘时获得了零值

真的希望得到你的帮助。

真诚地, 尤金。



Best Answer-推荐答案


希望您已正确配置 https://itunesconnect.apple.com 的排行榜

请引用下面的屏幕


enter image description here


还可以引用下面的代码来保存排行榜上的分数。

func saveScoreOnGameCenter()
{
    let leaderboardID = 111
    let sScore = GKScore(leaderboardIdentifier: leaderboardID)
    sScore.value = Int64(10)

    GKScore.reportScores([sScore], withCompletionHandler: { (error: NSError?) -> Void in
        if error != nil {
            print(error!.localizedDescription)
        } else {
            print("Score submitted")

        }
    })
}

希望这可以帮助您找出问题。

关于ios - Swift 3 Game Center 排行榜不保存分数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45941061/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap