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 多个关卡的游戏数据?当然,他们不会为 hi​​ghScores 等创建 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:释放游戏场景并重新分配新场景

SpriteKit 级数据安全性

SpriteKit - 组织保存的游戏数据的最佳方式是啥?

PhysicsBody 使用 SpriteKit 和 Swift 为零

iOS Spritekit 游戏中的肌酐水平

在spritekit swift问题中更改场景