我正在尝试在 cocos2d(版本 0.99.5)中初始化一个场景,并希望传入一个参数。在这种情况下,该参数是一个与级别编号对应的 int 值。场景类本身是 CCLayer
的子类,我使用节点类方法对其进行初始化:
GameScene *scene = [GameScene node]; //GameScene subclass of CCLayer
我有一个采用变量“level”的自定义初始化方法,如下所示:
- (id) initWithGameLevel:(int)level {
if ((self = [super init])){
// etc
}
}
只是想知道:我创建自己的 initWithX 方法的方法是否偏离了基础,以及我将如何使用级别整数初始化场景?
最佳答案
将此方法添加到您的子类
+(id)nodeWithGameLevel:(int)level{
return [[[self alloc] initWithGameLevel:level] autorelease];
}
而不是
GameScene *scene = [GameScene node];
写
GameScene *scene = [GameScene nodeWithGameLevel:levelNumber];
关于ios - 在 cocos2d 中使用参数初始化场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644332/