2011-04-06 66 views
8

我环顾四周,我已经看到关于如何将UIKit与cocos2d集成在一起的非常少的材料(注意:不是相反的方式)。我的意思是...例如...在UIView中添加一个椰子精灵动画,它放置在分割视图控制器(作为子视图)内。我怎样才能做到这一点!?将Cocos2D与UIKit集成

我想从UISplitView项目模板或UITabBar项目模板开始。

p.s.我已经做了一段时间的iPhone开发,但是当谈到cocos2d框架时,我是一个noob。

回答

11

在Cocos2d中有一个名为AttachDemo的演示,它将Cocos2d控制器连接到UIView。如果您检查名为-(void)runCocos2d的方法。

如果你看一下它的代码,它执行以下操作:

-(void) runCocos2d 
{ 
    if(state == kStateEnd) { 

     EAGLView *glview = [EAGLView viewWithFrame:CGRectMake(0, 0, 250,350)]; 
     [mainView addSubview:glview]; 

     CCDirector *director = [CCDirector sharedDirector]; 
     [director setOpenGLView:glview]; 

     CCScene *scene = [CCScene node]; 
     id node = [LayerExample node]; 
     [scene addChild: node]; 

     [director runWithScene:scene]; 

     state = kStateRun; 
    } 
    else { 
     NSLog(@"End the view before running it"); 
    } 
} 

正如你所看到的,你需要创建一个EAGLView,附加一个导演,然后简单地认为视图添加到视图层次结构。

+0

好极了!但是,如果我在TabBar控制器中,每个控制器包含一个EAGLView,或者我的UIView中有多个EAGLViews?导演是否保留所有观点的记录?而且,我可以运行一些场景并阻止其他人吗?谢谢。 – Mustafa 2011-04-07 04:38:11

+0

你可以做什么,是切换到另一个选项卡后,调用'[director setOpenGLView:glview];'在选项卡的主视图上,并在那里设置场景。您将使用多个'EAGLView's,但只有一个'CCDirector'。 – pgb 2011-04-07 13:47:04

+0

你有链接到这个演示?我似乎无法找到它 – 2011-09-01 20:23:09