私が持っているゲーム マップを一覧表示するテーブル ビューがあります。1 つをクリックすると、cocos2d シーンを含む別のストーリーボードが読み込まれます。
初めてシーンをロードすると、すべてが完全にロードされます。ただし、2 回目にシーンをロードしようとすると (ナビゲーション コントローラーから戻って、同じマップまたは別のマップをクリックします)、fps を示す空白の画面が表示されますが、他には何も表示されません。
これがmapViewControllerの私のコードです(cocos2dを含む)
- (void)setupCocos3D { //called from viewDidLoad
[[CCDirector sharedDirector] setOpenGLView:openGLView];
((ViewInterface*)[ViewInterface sharedViewInterface]).currentScene = [testScene scene];
// Create the customized CC3Layer that supports 3D rendering.
CC3Layer* cc3Layer = [HelloWorldLayer node];
// Create the customized 3D scene and attach it to the layer.
// Could also just create this inside the customer layer.
cc3Layer.cc3Scene = ((ViewInterface*)[ViewInterface sharedViewInterface]).currentScene;
// Assign to a generic variable so we can uncomment options below to play with the capabilities
CC3ControllableLayer* mainLayer = cc3Layer;
mainLayer.contentSize = CGSizeMake(2048, 1320);
[CCDirector sharedDirector].animationInterval = (1.0f / kAnimationFrameRate);
[CCDirector sharedDirector].displayStats = YES;
[[CCDirector sharedDirector] enableRetinaDisplay: YES];
((ViewInterface*)[ViewInterface sharedViewInterface]).mainLayer = mainLayer;
[[CCDirector sharedDirector] runWithScene:((ViewInterface*)[ViewInterface sharedViewInterface]).mainLayer];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[CCDirector sharedDirector] end];
}
fps を見ることができるのは本当に奇妙です。したがって、唯一の問題はシーンまたはレイヤーのいずれかにあるようです。