【问题标题】:Integrating Cocos2D with UIKitCocos2D 与 UIKit 的集成
【发布时间】:2011-07-30 18:41:28
【问题描述】:

我环顾四周,几乎没有看到关于如何将 cocos2d 与 UIKit 集成的材料(注意:不是相反)。我的意思是……例如……在 UIView 中添加一个 cocos sprite 动画,该动画放置在拆分视图控制器中(作为子视图)。我该怎么做!?

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

附言我做 iPhone 开发已经有一段时间了,但是对于 cocos2d 框架我是个菜鸟。

【问题讨论】:

    标签: iphone ios ipad uikit cocos2d-iphone


    【解决方案1】:
    【解决方案2】:

    在 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,将一个导向器附加到它,然后将该视图简单地添加到视图层次结构中。

    【讨论】:

    • 太棒了!但是,如果我在 tabBar 控制器中并且每个控制器都包含一个 EAGLView,或者我的 UIView 中有多个 EAGLView,该怎么办?导演是否保留所有观点的记录?而且,我可以运行一些场景并阻止其他场景吗?谢谢。
    • 你可以做的是,切换到另一个标签后,在标签的主视图上调用[director setOpenGLView:glview];,并在那里设置场景。您将使用多个EAGLViews,但只使用一个CCDirector
    • 你有这个演示的链接吗?好像没找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多