保存选项设置的状态(cocos2d)

时间:2015-07-14 15:25:42

标签: ios objective-c cocos2d-iphone

我有一个问题,我希望我的游戏保存我的选项场景中的设置状态,例如..如果我通过点击音乐按钮关闭音乐,音乐将关闭并​​写入如果我改变了场景,音乐图像下的“音乐关闭”,设置保持与我设置的相同,直到这里没问题....但是当我重新启动应用程序时,设置如前所述返回,音乐开启在音乐形象下写下“音乐开”,我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

最简单,最常见的方法是NSUserDefaults。

首先,您必须在首次启动时注册默认值(在applicationDidFinishLaunch中)。

 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if (![userDefaults boolForKey:@"hasLaunchedOnce"]) {
            [userDefaults setBool:YES forKey:@"hasLaunchedOnce"];
            NSDictionary* defaults = [NSDictionary dictionary];
            [defaults setValue:@YES forKey:@"musicOn"];
            [userDefaults registerDefaults:defaults];
    }

然后例如按下按钮

设置新值
musicButton.block = ^(id sender) {
        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:YES forKey: @"musicOn"];
// [userDefaults synchronize]; // actually you dont really need to force it everytime, but if you want

    };

如果你想检查代码中的任何地方,如果有音乐,你就可以

  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
 if ( [userDefaults boolForKey:@"musicOn"] ) { /* do something */}