1

我知道這裏有幾個問題 - 但沒有一個與我的問題有關。 我試圖通過UINavigationController將舊的Cocos2d遊戲的一部分附加到我的應用程序。 (這個的主要觀點是,當我想返回到我的應用程序的主屏幕時,我可以彈出回到我的根視圖控制器。我認爲這是一個非常簡單的解決方案..UINavigationController中的Cocos2d項目

*我想附上如果我只是從我的根視圖控制器運行遊戲,但由於某種原因,如果我嘗試運行,它會給我一個「EXC_BAD_ACCESS Director @synchronized」的錯誤,下面的代碼適用於我的UINavigationController的一個視圖控制器。從單獨的視圖控制器的遊戲。

目前,我使用以下代碼來啓動從我的應用程序的主屏幕(根VC)我的遊戲(通過按鈕抽頭)。

MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
UIWindow *window = appDelegate.window; 

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent]; 
Director *director = [Director sharedDirector]; 
[director setPixelFormat:kRGBA8]; 
[director attachInView:self.view withFrame: window.frame]; 
[director setAnimationInterval:1.0/kFPS]; 
[Texture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888]; 

Scene *scene = [[Scene node] addChild:[Game node] z:0]; 
[director runWithScene: scene]; 

哪個運行良好。不過,一旦完成遊戲,我需要一些方法來回到應用程序的主屏幕。如何在一個不是根視圖控制器的視圖控制器中打開init遊戲?

[ROOT VC] - > [遊戲控制器:啓動遊戲]

我很新的Cocos2D ..任何幫助,非常感謝!

+0

我想'[[Director sharedDirector] attachInView:(UIView *)withFrame:(CGRect)'可能與它有關。但是,上面的代碼在不是rootviewcontroller的視圖控制器中不起作用。 – lreichold

+0

您是否知道在導航控制器中使用cocos2d的任何資源? –

回答

0

我很容易地解決了這個問題,通過使用cocos2d的導演方法:

[[Director sharedDirector] end] 

從而結束所有正在運行的場景和分離從窗口或視圖中的項目。

由於我需要遊戲運行全屏,並使用導航控制器,我只是使用下面的工作。

[appDelegate.navigationController setNavigationBarHidden:NO animated:YES]; 
    [appDelegate.navigationController setNavigationBarHidden:YES animated:YES]; 

注意:您可以撥打任何地方的任何董事方法,您的項目通過調用[董事sharedDirector]參考。希望這有助於他人,並可以節省一些時間。