2

我在我的游戏中使用 cocos2d 和视图控制器。我想使用以下代码使用 cocos2d 场景调用视图控制器

PlayAgainViewController* playAgain = [[PlayAgainViewController alloc] initWithNibName:@"PlayAgainViewController" bundle:nil];
    [[[CCDirector sharedDirector] openGLView] addSubview:playAgain.view];

它在游戏场景中添加视图控制器视图,但不通过使用在 openGl 视图上添加的视图来调用另一个视图控制器。

4

2 回答 2

1

非常感谢您的回答。as:

    [[CCDirector sharedDirector] pause];
    PlayAgainViewController* playAgain = [[PlayAgainViewController alloc] initWithNibName:@"PlayAgainViewController" bundle:nil];
    AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    [app.navigationController pushViewController:playAgain animated:YES]; 

它对我有很大帮助并解决了我的问题。但是现在我面临一个新问题,即当我使用您的答案从 cocos2d 层调用视图控制器时,它的工作非常好:),但是当我想调用另一个调用 EAGLView 的视图控制器时,使用以下代码:

 if([[CCDirector sharedDirector] isPaused])
     [[CCDirector sharedDirector] replaceScene:[Game scene]];
 else 
     [[CCDirector sharedDirector] runWithScene:[Game scene]];

它显示白屏。我认为问题在于质地。你能告诉我如何在调用视图控制器时释放层中使用的纹理吗?

于 2012-10-04T10:02:27.767 回答
1

//如果 UR_COCOS2D_VERSION_2_0

  AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate];    
  [app.navController presentModalViewController:playAgain animated:YES];

//Cocos2D 1.0,在appDelegate中使用viewController属性。

 AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate];              
 [app.viewController presentModalViewController:playAgain animated:YES];
于 2012-10-04T08:31:51.733 回答