我有一个菜单项,点击该菜单项将调用goToGameLayer。 goToGameLayer方法仅执行以下操作:

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


但是,在replaceScene之后,不会调用GameLayer中的+(id)scene方法

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

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


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

感谢您的任何建议!

最佳答案

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

[[GameLayer alloc] init]];


如果您使用

[GameLayer scene];


而是将调用该方法,并且您也可以省略对CCScene的强制转换:

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

10-08 14:59