0

適切に動作させることができないため、cocos2d で現在のシーンを再起動する適切な方法を知りたいです。次のコードを使用して実際のシーンを再起動していますが、黒い画面しか表示されません....

CCScene *currentScene = [CCDirector sharedDirector].runningScene;
CCScene *newScene = [[[currentScene class] alloc] init];

[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.7f scene:newScene]];

注: これが、一時停止メニューなどの管理を担当する CClayer サブクラスからこのコードが実行されるという事実と関係があるかどうかはわかりません (関係ないと思います)。

注 2: これは一般的な再起動であり、すべてのシーンで機能するふりをしているので、ありがとうございます!!

4

3 に答える 3

1

その手動割り当てと関係があると思います。ほとんどの場合、cocos2d 静的コンストラクターを呼び出して、メモリ管理を処理させる方が適切です。これが私がすることです。-

MyClassScene *newScene = [MyClassScene node];
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:kTransitionTime scene:newScene withColor:ccc3(255, 255, 255)]];

それが役に立てば幸い。

于 2013-04-15T01:01:57.013 に答える
0

これを試して:

CCScene *currentScene = [[CCDirector sharedDirector] runningScene];

[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.7f scene:[currentScene node]]];
于 2013-04-16T23:58:09.633 に答える