UIButtonsに基づくUIKitメニューがあり、そのうちの1つをクリックすると、cocos2Dシーンが起動します。AppDelegateでCCDirectorを設定しています:
if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
[CCDirector setDirectorType:kCCDirectorTypeDefault];
CCDirector *director = [CCDirector sharedDirector];
[director setAnimationInterval:1.0/60];
[director setDisplayFPS:YES];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
そして、rootViewController(私のEAGLViewを保持するviewController)では、viewDidLoadメソッドでこれを行っています:
glView = [EAGLView viewWithFrame:self.view.bounds
pixelFormat:kEAGLColorFormatRGBA8
depthFormat:0
];
glView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view insertSubview:glView atIndex:0];
[[CCDirector sharedDirector] setOpenGLView:glView];
CCScene *scene = [GameScene sceneWithParent:self];
[[CCDirector sharedDirector] runWithScene:scene];
MainMenuViewControllerでメニューを設定しています。ここから、navigationControllerのスタックにあるRootViewControllerをプッシュします。これは完璧に機能し、私のゲームは問題なく開始されます。RootViewController(cocos2dシーンを保持している)からUIButtonを使用して戻ることもできます:- (IBAction)goBack {
[self.navigationController popViewControllerAnimated:YES];
[[CCDirector sharedDirector] end];}
しかし、ゲームシーンをリロードしようとすると、アプリケーションが終了します。私はこの方法を試しました: CCDirectorを再起動しますが、無駄です!! CCDirectorを一時停止してアニメーションを再開しようとしましたが、無駄でしたが、発生するエラーはcocos2dの描画メソッドに関連しています!! 助けてください