我正在尝试在cocos2d(版本0.99.5)中初始化一个场景,并希望传入一个参数。在这种情况下,参数是对应于级别编号的int值。场景类本身是CCLayer
的子类,我用节点类方法初始化它:
GameScene *scene = [GameScene node]; //GameScene subclass of CCLayer
我有一个自定义的init方法,它接受变量“level”,如下所示:
- (id) initWithGameLevel:(int)level {
if ((self = [super init])){
// etc
}
}
只是想知道:我在创建自己的initWithX方法的过程中是否偏离基础,以及如何使用级别整数初始化场景?
答案 0 :(得分:19)
将此方法添加到子类
+(id)nodeWithGameLevel:(int)level{
return [[[self alloc] initWithGameLevel:level] autorelease];
}
而不是
GameScene *scene = [GameScene node];
写
GameScene *scene = [GameScene nodeWithGameLevel:levelNumber];