我目前正在制作一个摇滚,纸张,剪刀和#34;使用cocos2d的iOS游戏,并想知道什么是优雅高效地计算和通过每个场景得分的最佳方式。分数将保持3个值(胜利,亏损,平局),因此很可能是一个阵列。
游戏包括三个场景,菜单,选择你的标志和结果场景(w / l / d) 我希望能够显示所有三个分数。
答案 0 :(得分:1)
NSUserDefaults是一个在本地保存分数的gud选项 -
保存使用 -
[[NSUserDefaults standardUserDefaults] setObject:SCORE forKey:@"Scores"];
在任何场景中获得分数 -
scores = [[NSUserDefaults standardUserDefaults] objectForKey:@"Scores"];
为胜利,亏损,平局制作不同的关键。或者您可以使用单个密钥保存带有胜利,亏损的数组。
答案 1 :(得分:0)
得分是全局“游戏”对象的一部分,并不是场景的一部分,所以我会创建一个Game
对象并使用单例模式,以便在该过程中只存在一个对象实例
然后,这个Game
类可以使用NSUserDefaults
或Game Center进行通信/序列化状态。
答案 2 :(得分:0)
我不认为让Game对象本身成为单身人士是个好主意;理想情况下,您可以在“新游戏”或“开始”实例化它,并且实例将在“游戏结束”之后的某个时间停止存在。
如果你需要它可以持续多个场景,你可以拥有一个全局的“GameManager”(这个,是的,一个单例)对象,其中有一个名为currentGame
的属性,它总是保持游戏实例的存在当前播放(或nil
如果没有播放),并从每个场景中查询。
只需一种方法;这一切都取决于你的游戏的设计和结构。