SpriteKit Swift 保存关卡数据的最佳方式
Posted
技术标签:
【中文标题】SpriteKit Swift 保存关卡数据的最佳方式【英文标题】:SpriteKit Swift best way to save level data 【发布时间】:2015-09-29 11:37:17 【问题描述】:我正在制作一个新游戏,它将有大约 4 个世界,每个世界有 7-8 个关卡,所以总共大约 30 个关卡。我正在尝试找出一种方法来为每个人保存诸如 highScores、unlockStatus、最佳时间等数据。
到目前为止,我发现的最好方法是为每个世界创建 1 个具有 NSCoding 格式的 GameData 类,然后保存关卡数据。 它工作得很好,但它仍然看起来很笨重而且代码很多,因为我现在有 4 个 GameData 类,并且在每个类中我仍然需要为每个级别创建诸如 highScores 等属性。更不用说 iCloud 键值存储了。
像新版《愤怒的小鸟 2》这样的游戏如何保存和跟踪 240 多个关卡的游戏数据?当然,他们不会为 highScores 等创建 240 个属性。
有人可以引导我朝着正确的方向前进吗? 感谢您的任何帮助和建议
【问题讨论】:
我建议使用 parse.com 作为 MBAAS,免费直到你变大,在核心数据和钥匙串中管理高级别的本地存储,所以大多数问题都会为你解决现成的 嘿,谢谢,我已经在研究解析了。再次感谢 【参考方案1】:老问题,但我不妨发布一个答案。
我最终选择了数组、字典和字典数组。这样我就可以毫不费力地保存多个级别。现在也很容易循环遍历那些字典/数组做一些事情,比如解锁关卡。
有关示例代码,请参阅此更新的问题
Is there a better way to save a custom class to NSUserDefaults than encoding and decoding everything with NSCoder?
【讨论】:
以上是关于SpriteKit Swift 保存关卡数据的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
Swift,SpriteKit:释放游戏场景并重新分配新场景