使用Parameter在cocos2d中初始化场景

Jim*_*Gaw 6 objective-c cocos2d-iphone ios

我正在尝试在cocos2d(版本0.99.5)中初始化一个场景,并希望传入一个参数.在这种情况下,参数是对应于级别编号的int值.场景类本身是一个子类CCLayer,我用节点类方法初始化它:

GameScene *scene = [GameScene node];  //GameScene subclass of CCLayer
Run Code Online (Sandbox Code Playgroud)

我有一个自定义的init方法,它接受变量"level",如下所示:

- (id) initWithGameLevel:(int)level {
    if ((self = [super init])){
        // etc 
    }
}
Run Code Online (Sandbox Code Playgroud)

只是想知道:我在创建自己的initWithX方法的过程中是否偏离基础,以及如何使用级别整数初始化场景?

Ind*_*ore 19

将此方法添加到您的子类

+(id)nodeWithGameLevel:(int)level{
    return  [[[self alloc] initWithGameLevel:level] autorelease];
}
Run Code Online (Sandbox Code Playgroud)

而不是

GameScene *scene = [GameScene node]; 
Run Code Online (Sandbox Code Playgroud)

GameScene *scene = [GameScene nodeWithGameLevel:levelNumber];
Run Code Online (Sandbox Code Playgroud)