スレッドにコードを正しく表示する方法がわからないので、事前に申し訳ありません。だから私は呼び出すApp Delegateを持っています
[director_ pushScene: [IntroLayer シーン]];
次に、私の introLayer はこれを行います。
-(void) makeTransition:(ccTime)dt
{
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[MainMenu scene] withColor:ccBLUE]];
}
次に、MainMenu.h と .m がありますが、.m 以外はほとんど空です。
@implementation MainMenu
// Helper class method that creates a Scene with the GamePlay as the only child.
+(CCScene *) scene
{
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
MainMenu *layer = [MainMenu node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
@end
次に、ナビゲーション コントローラーを使用するストーリーボードがあり、'makeTransition' 関数を呼び出したときにオープニング シーンをメイン メニューにしたいと考えています。私のストーリーボードには、このメイン メニューに [再生] ボタンがあります。この再生ボタンは、「CCViewController」クラスの別のビュー コントローラにプッシュ セグされます。CCViewController.m と .h があり、そこから cocos2dViewController.m と .h というサブクラスを作成しました。私の cocos2dViewController.m では、次のように呼び出します。
if(director.runningScene)
[director replaceScene:[GamePlay scene]];
else
[director pushScene:[GamePlay scene]];
GamePlay.m と .h は、ゲーム全体を定義する場所です。
そのため、実行すると起動画面が表示され、青色から黒色の画面に移行します。MainMenu.m に何もないからでしょうか。また、(私が思うに) MainMenu.m には何も必要ありません。MainMenu シーンをストーリーボードの初期 (メイン メニュー) シーンにする何らかの方法が必要なだけです。私はこれを機能させるのにかなり近づいていると感じています。この時点で提供する必要があるアドバイス/知識、または問題を診断するためにさらに情報が必要な場合は、再び大歓迎です. ありがとう!