0

从 GameOver 和 StageClear 场景开始,我一直在尝试将我的课程分解成更小的部分。我的 GameOver 场景现在可以正常工作,但我被 StageClear 场景卡住了。经过研究,我发现了这个话题。基于该主题,我最终得到了这段代码,以便为我的游戏阶段重用 StageClear 场景:

i++;
NSString *go = [NSString stringWithFormat:@"Stage%i", i];
[[CCDirector sharedDirector]replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[NSClassFromString(go) scene]]];

使用此代码,我想调用下一个阶段。(Stage1 --> clear game --> i++ --> stage%i = stage2 --> go to Stage2. 我得到一个错误的访问错误代码 1 尤其是在转换(第三行)以及我的堆栈上的这条消息,

-[CCTransitionFade initWithDuration:scene:] 中的断言失败

为什么会这样?我究竟做错了什么?

4

1 回答 1

0

可以使用字符串变量替换场景

-(void)onEnter{

    [super onEnter];

    Class OtherLayerClassName = NSClassFromString(@"OtherLayer");
    [[CCDirector sharedDirector]replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[OtherLayerClassName scene]]];
}

在这种情况下不要忘记包含必要的文件 OtherLayer.h

于 2013-02-26T14:27:28.243 回答