SpriteKit Swift лучший способ сохранить данные уровня

Я делаю новую игру, в которой будет около 4 миров с 7-8 уровнями в каждом, всего около 30 уровней. Я пытаюсь найти способ сохранить такие данные, как highScores, unlockStatus, лучшее время и т. Д. Для каждого из них.

Наилучший способ, который я нашел до сих пор, - создать 1 класс GameData с форматом NSCoding для каждого мира, в котором сохраняются данные уровня. Он работает нормально, но все еще выглядит очень неуклюже и содержит много кода, поскольку у меня сейчас есть 4 класса GameData, и в каждом из них мне все еще нужно создавать свойства, такие как highScores и т. Д. Для каждого уровня. Давайте даже не будем говорить о хранилище значений ключей iCloud.

Как такая игра, как новая Angry Birds 2, может сохранять и отслеживать игровые данные для более чем 240 уровней? Конечно, они не создают 240 свойств для рекордов и т. Д.

Может ли кто-нибудь, пожалуйста, направить меня в правильном направлении. Спасибо за любую помощь и предложения

1 ответ

Решение

Старый вопрос, но я мог бы также опубликовать ответ.

Я заканчивал тем, что пошел с массивами, словарями и массивами словарей. Таким образом, я могу сохранить несколько уровней без особых хлопот. Кроме того, теперь очень просто проходить через эти дикты / массивы, такие как разблокировка уровней.

Смотрите этот более свежий вопрос для примера кода

Есть ли лучший способ сохранить пользовательский класс в NSUserDefaults, чем кодирование и декодирование всего с помощью NSCoder?

Другие вопросы по тегам