带视图控制器的cocos2d

时间:2012-10-03 19:05:14

标签: objective-c opengl-es uiviewcontroller cocos2d-iphone

我在游戏中使用cocos2d并查看控制器。我想使用以下代码

使用cocos2d场景调用视图控制器
PlayAgainViewController* playAgain = [[PlayAgainViewController alloc] initWithNibName:@"PlayAgainViewController" bundle:nil];
    [[[CCDirector sharedDirector] openGLView] addSubview:playAgain.view];

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

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:1)

非常感谢您的回答。:

    [[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 usig的视图控制器代码时:

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

显示白屏。我认为问题是质地。您可以告诉我如何在调用视图控制器时释放图层中使用的纹理。