假设我有一个游戏,用户在开始时可以选择一些名称,性别等内容,这将影响游戏中的许多方面,例如用于渲染用户的精灵,以及显示的文字。
因此,每当我离开游戏的一个区域并输入一个新区域时,我应该根据用户数据找出 - 使用什么精灵以及准备哪些文本。我应该为用户的数据创建一个单独的字典,然后只要我进入一个新区域就调用它吗? 谢谢你。
答案 0 :(得分:3)
有几种方法可以做到这一点。
我更喜欢使用带有NSCoding的单例GameData类来容纳需要永久保存的所有属性(数组,字典等)。
我喜欢这种方式,因为它使代码更具可读性,并且还具有可以从项目中的任何位置访问属性的优势。这样,它也很容易包含icloud密钥值存储。
你可以阅读我回答的这两个问题,这是一个简单的例子,看看它是什么样的
SpriteKit: Why does it wait one round for the score to update? (Swift)
还有一些很好的教程,比如这个
https://www.hackingwithswift.com/read/12/3/fixing-project-10-nscoding
为了安全地保存数据,您可以/应该使用钥匙串。要了解更多信息,请查看此问题。