如何在游戏中存储用户数据? (swift,spritekit)
比方说,我有一个游戏,一开始用户可以select一些东西,比如名字,性别等等,这会影响游戏的很多方面,比如用来渲染用户的精灵,文本显示。
所以每次我离开游戏的一个区域并进入一个新的区域时,我应该根据用户数据计算出 – 使用什么样的精灵和准备什么样的文字。 我应该为用户的数据创build一个字典的单独的类,然后每当我进入一个新的区域时调用它? 谢谢你。
有几种方法可以做到这一点。
我更喜欢使用NSCoding的单例GameData类来容纳需要永久保存的所有属性(数组,字典等)。
我喜欢这样,因为它使代码更具可读性,而且还具有可以从项目的任何位置访问属性的优点。 这样,包含icloud键值存储也很容易。
你可以阅读我回答的这两个问题,看看这个问题
SpriteKit:为什么要等一分钟才能更新分数? (迅速)
有没有比用NSCoder编码和解码所有东西更好的方式来保存自定义类到NSUserDefaults?
这里还有一些很好的教程
https://www.hackingwithswift.com/read/12/3/fixing-project-10-nscoding
要安全地保存数据,您可以/应该使用钥匙串。 阅读更多关于它检查出这个问题。
iOS 8,9上的NSUserDefaults有多安全?