У меня проблемы с поиском лучшего способа сообщить о прогрессе достижений в Game Center. Проблема, с которой я столкнулся, заключается в том, что поскольку я проверяю свой счет во время цикла обновления, достижения постоянно отправляются в игровой центр. Это запускает баннер l oop постоянно, пока игра не будет принудительно завершена.
Я предполагаю, что мне нужно сработать какой-то bool, чтобы перестать сообщать, когда достижение было разблокировано, но у меня просто проблемы выясняя, как go написать этот триггер.
ниже - это функция checkAchievements (), которая вызывается внутри update (). Это последняя из многих попыток написать что-то в этом роде - каждый раз, когда я сталкиваюсь с одной и той же проблемой.
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)
}
}