2012-08-01 64 views
0

我不知道如何正確顯示線程中的代碼,所以提前感到抱歉。所以我有我的應用程序委託調用如何設置一個場景作爲初始視圖控制器cocos2d

[director_ pushScene:[IntroLayer scene]];

然後我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場景成爲故事板的初始(主菜單)場景。我覺得我已經接近完成這項工作,並且您現在需要提供任何建議/知識,或者如果您需要更多信息來診斷問題,我們將再次對此表示讚賞。謝謝!

回答

0

當在cocos2d中沒有場景運行時,您應該通過調用runScene而不是replaceScene來啓動一個場景。

這是你應該嘗試和改變的第一件事。

另一方面,在我看來你試圖在UIKit視圖控制器中顯示一個cocos2d場景。這也需要一些謹慎的工作。如果您使用的是cocos2d 2.0,請參閱this post瞭解一些提示。

+0

我跟着那個教程來到我現在的位置。你也說這需要一些小心的工作,有沒有更好的方法可以建議你這樣做?謝謝 – sbru 2012-08-01 17:57:39

+0

,據我所知,你不應該像你定義的那樣調用'makeTransition'。簡單地實例化你的控制器(根據教程),然後繼續執行它 - viewDidLoad(按照教程)應該做所有必需的。 – sergio 2012-08-01 18:03:44

+0

順便說一句,嘗試添加一些精靈到你的MainMenu場景,看看它是否顯示。 – sergio 2012-08-01 18:05:45

相關問題