我已经在游戏中添加了关卡层,每个关卡都有自己的场景.我希望能够重新启动当前场景.显然场景会改变,但图层将保持不变.怎么做 我试过了-
CCScene *currentScene = [[CCDirector sharedDirector]runningScene];
[[CCDirector sharedDirector]replaceScene:currentScene];
Run Code Online (Sandbox Code Playgroud)
谢谢
这不起作用,因为您无法用自己替换相同的场景对象:
CCScene *currentScene = [[CCDirector sharedDirector]runningScene];
[[CCDirector sharedDirector]replaceScene:currentScene];
Run Code Online (Sandbox Code Playgroud)
相反,你必须创建一个新的场景实例,如下所示:
[[CCDirector sharedDirector] replaceScene:[YourSceneClass scene]];
Run Code Online (Sandbox Code Playgroud)
如果您不知道当前的场景类是什么,那么这应该工作:
CCScene *currentScene = [CCDirector sharedDirector].runningScene;
CCScene *newScene = [[[currentScene class] alloc] init];
[[CCDirector sharedDirector] replaceScene:newScene];
Run Code Online (Sandbox Code Playgroud)
假设你现在每个人都应该使用ARC.否则添加自动释放.