有几种方法可以实现您想要的功能。我将给您一些提示和建议,以便您可以创建适合您游戏的代码。
首先,请记住MyScene是一个SKScene,在SpriteKit项目模板中默认由View Controller调用。因此,您可以创建尽可能多的SKScene类来拥有不同的关卡。每个SKScene类可以是一个关卡。
您可以将第一个SKScene,即MyScene,转换为主菜单,并在此处添加用户选择关卡的列表。要从主菜单(MyScene)进入所选关卡,您可以使用以下代码:
SKScene *gameLevel1 = [[Level1 alloc] initWithSize:self.size];
SKTransition *reveal = [SKTransition doorsOpenVerticalWithDuration:1.0];
[self.view presentScene:gameLevel1 transition:reveal];
Level1将是你第一关的SKScene类的名称。你还可以选择许多出色的过渡效果。根据你的需求,你也可以包含一个scaleMode属性。
正如LearnCocos2D所指出的那样,你可以使用数组或字典来存储玩家的数据,例如物品、健康和达到的级别。除非你需要保存大量数据,否则NSUserDefaults是最好的选择。下面是一个使用NSUserDefaults存储数据的示例:
NSString *valueToSave = @"Level 5"
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"levelReached"]
[[NSUserDefaults standardUserDefaults]synchronize]
要读取NSUserDefaults中存储的值,您可以执行以下操作:
NSString *highLevel = [[NSUserDefaults standardUserDefaults] stringForKey:@"levelReached"]
您可以随时将新数据写入NSUserDefaults。因此,如果玩家刚完成一个关卡,请将其写入NSUserDefaults。