如何在游戏中存储用户数据? (swift,spritekit)

时间:2016-04-19 17:10:29

标签: ios class sprite-kit

假设我有一个游戏,用户在开始时可以选择一些名称,性别等内容,这将影响游戏中的许多方面,例如用于渲染用户的精灵,以及显示的文字。

因此,每当我离开游戏的一个区域并输入一个新区域时,我应该根据用户数据找出 - 使用什么精灵以及准备哪些文本。我应该为用户的数据创建一个单独的字典,然后只要我进入一个新区域就调用它吗? 谢谢你。

1 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点。

我更喜欢使用带有NSCoding的单例GameData类来容纳需要永久保存的所有属性(数组,字典等)。

我喜欢这种方式,因为它使代码更具可读性,并且还具有可以从项目中的任何位置访问属性的优势。这样,它也很容易包含icloud密钥值存储。

你可以阅读我回答的这两个问题,这是一个简单的例子,看看它是什么样的

SpriteKit: Why does it wait one round for the score to update? (Swift)

Is there a better way to save a custom class to NSUserDefaults than encoding and decoding everything with NSCoder?

还有一些很好的教程,比如这个

https://www.hackingwithswift.com/read/12/3/fixing-project-10-nscoding

为了安全地保存数据,您可以/应该使用钥匙串。要了解更多信息,请查看此问题。

How secure is NSUserDefaults on iOS 8,9?