【发布时间】:2020-08-04 19:05:39
【问题描述】:
我在尝试找出向 Game Center 报告成就进度的最佳方式时遇到了一些麻烦。我遇到的问题是,因为我在更新周期中检查我的分数,所以成就被不断地报告给游戏中心。这会触发横幅不断循环,直到游戏被强制退出。
我认为我需要在成就解锁时触发某种 bool 来停止报告,但我只是在弄清楚如何编写此触发器时遇到了麻烦。
下面是在 update() 内部调用的 checkAchievements() 函数。这是按照这些思路写东西的许多尝试中的最新一次——每次我都遇到同样的问题。
func checkAchievements() {
var identifier : String? = nil
var percentComplete : Double = 0
switch GameScene.score {
case 1...5 : identifier = "5points"
percentComplete = 100.0
case 6...10 : identifier = "10points"
percentComplete = 100.0
default : identifier = nil
}
if identifier != nil {
let achievement = GKAchievement(identifier: identifier!)
achievement.showsCompletionBanner = true
achievement.percentComplete = percentComplete
GKAchievement.report([achievement], withCompletionHandler: nil)
}
}
【问题讨论】:
标签: swift game-center achievements