如何创建打开和关闭的级别

时间:2014-02-05 17:46:46

标签: ios cocos2d-iphone

我想创建具有打开和关闭级别的游戏。 我有10个级别。在每个级别是10个底层。 1级是开放的,其他是接近的。在1级中,它打开9个底层。如果我赢得任何7个低位,则打开10个低于平均水平。如果我赢得10个低于标准,则打开第二级,9个低级别。

如何使用NSUserDefaults standardUserDefaults进行制作?

NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"openLevels"];
        dict = [NSDictionary dictionaryWithObjectsAndKeys:
                @"level 1-1", @"open",
                @"level 1-2", @"closed",
                @"level 1-3", @"closed",
                @"level 1-4", @"closed",
                @"level 1-5", @"closed",
                @"level 1-6", @"closed",
                @"level 1-7", @"closed",
                @"level 1-8", @"closed",
                @"level 1-9", @"closed",
                @"level 1-10", @"closed",nil];

        NSString *customerDict ;
        [[NSUserDefaults standardUserDefaults] setValue:customerDict forKey:@"openLevels"];

       if ([[dict valueForKey:@"level 1-1"] isEqualToString:@"open" ]){

        }else{

            NSLog(@"not open");
        }

2 个答案:

答案 0 :(得分:0)

对于每个子级别,您希望在启动应用程序时知道它是打开还是关闭。为此,您可以为每个子级别创建一个字典(级别1子级别1级别为1-1),值为打开或关闭:

dict = [NSDictionary dictionaryWithObjectsAndKeys:
           @"level 1-1", @"open", 
           @"level 1-2", @"open", 
           @"level 1-3", @"closed", 
           @"level 1-4", @"closed",  
           .....
           @"level 10-10", @"closed", nil];

然后将其保存到NSUserDefaults:

 [[NSUserDefaults standardUserDefaults] setValue:customerDict forKey:@"openLevels"];

启动应用程序时,您会阅读已保存的词典,以了解打开的内容和已关闭的内容:

 NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"openLevels"];

然后,当您创建关卡时,您只需检查它是打开还是关闭:

if [dict valueForKey:@"level 1-1"] isEqualToString: @"open" {
     //set level 1-1 as open
} 

答案 1 :(得分:0)

我假设你已经在课堂上有这个 - 所以你可以存档该对象并取消存档。这是一篇有基本实现的博客文章

http://sam.roon.io/archiving-objective-c-objects-with-nscoding

您可以将数据存储在NSUserdefaults中,无需任何花哨的东西。值得注意的是,您只能归档符合NSCoding的对象

如果你需要存档int或float然后将它们加到@(1),@(1.0)使用NSValue表示结构;)http://nshipster.com/nsvalue/

享受