Ios 在场景之间传递整数,iphone游戏精灵套件

Ios 在场景之间传递整数,iphone游戏精灵套件,ios,iphone,cocoa-touch,sprite-kit,scene,Ios,Iphone,Cocoa Touch,Sprite Kit,Scene,我有一个场景,用户在游戏中选择关卡,然后我想切换到用户选择关卡的游戏场景。我想创建具有正确级别的游戏场景,但要做到这一点,我需要将一个整数(级别编号)传递给游戏场景,以便知道要加载哪个级别 我的问题是,我如何做到这一点?我已经查看了节点的userdata属性,但不知道如何使用它来实现我想要的。非常感谢您的帮助。当您调用[self.view presentScene:scene transition:transition]在关卡选择场景中,首先使用关卡编号设置新场景。因此: //GameScene

我有一个场景,用户在游戏中选择关卡,然后我想切换到用户选择关卡的游戏场景。我想创建具有正确级别的游戏场景,但要做到这一点,我需要将一个整数(级别编号)传递给游戏场景,以便知道要加载哪个级别


我的问题是,我如何做到这一点?我已经查看了节点的userdata属性,但不知道如何使用它来实现我想要的。非常感谢您的帮助。

当您调用
[self.view presentScene:scene transition:transition]
在关卡选择场景中,首先使用关卡编号设置新场景。因此:

//GameScene.h
//This is the public interface for your game scene
@import SpriteKit;
@interface GameScene : SKScene
@property (nonatomic, assing)NSInteger levelNumber;
@end
然后

//Level Selection Scen
//Select.m
#import "GameScene.h"
... Rest of your code
User selects level and you prepare for transition and call
- (void)transitionToLevel:(NSInteger)level{
    GameScene *destinationScene = [[GameScene alloc] initWithSize:self.size];
    destinationScene.levelNumber = level;
    SKTransition *transition = //Set up transition here
    [self.view presentScene:destinationScene transition:transition];
}    
在游戏场景的实现中

//GameScene.m
#import "GameScene.h"
@implementation GameScene
-(id)initWithSize:(CGSize){
    if (self.levelNumber == 1){
        [self playLevelOne]; //Where this is where you play your game
    }
    else if (self.levelNumber == 2){
        [self playLevelTwo];
    }
}
- (void)playLevelOne{
    //Level Implementation
}
- (void)playLevelTwo{
    //Level Implementation
}
@end
您可以为您计划支持的每个级别执行此操作

    // First Scene
    NSUserDefaults.standardUserDefaults().setInteger(12345, forKey:"SCORE")

    // Second Scene
    if let myScore: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey("SCORE") {
        println(myScore)
        finalScore = myScore as IntegerLiteralType
    }