在replaceScene之后没有调用+(id)场景

时间:2014-03-30 14:00:10

标签: ios objective-c cocos2d-iphone kobold2d

我有一个菜单项,在点击时会调用goToGameLayer。 goToGameLayer方法只执行以下操作:

[[CCDirector sharedDirector] replaceScene:(CCScene*)[[GameLayer alloc] init]];

然而,在replaceScene之后,GameLayer中的+(id)场景方法未被调用

+(id)scene{
    NSLog(@"+(id)scene CALLED");

    CCScene *scene = [CCScene node];
    GameLayer *layer = [GameLayer node];
    [scene addChild: layer];
    return scene;
}

我发现menuLayer中的dealloc方法是在GameLayer中的init方法之后调用的,但是我不确定是否会中断处理当前场景。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

未调用scene方法,因为您使用以下方法初始化对象:

[[GameLayer alloc] init]];

如果您使用

[GameLayer scene];

相反,该方法将被调用,您也可以省略转换为CCScene

[[CCDirector sharedDirector] replaceScene:[GameLayer scene]];