【问题标题】:UIView + Cocos2D ElementUIView + Cocos2D 元素
【发布时间】:2012-07-02 08:07:14
【问题描述】:

我想在我的 UIView 上添加一个 CCSprite,可以这样做吗?我发现的是在 Cocos2D 上添加 UIKit 的方法,但我想要它的相反。我想在 UIKit 上添加 Cocos2D。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: uiview cocos2d-iphone uikit


    【解决方案1】:

    您可以通过在 uiviewcontroller 类中设置以下方法来做到这一点

    - (void)setupCocos2D {
    CCGLView *glView = [CCGLView viewWithFrame:CGRectMake(100, 100, 200, 200)
                                   pixelFormat:kEAGLColorFormatRGB565   // kEAGLColorFormatRGBA8
                                   depthFormat:0                        // GL_DEPTH_COMPONENT16_OES
                        ];
    glView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.view insertSubview:glView atIndex:0];
    
    [[CCDirector sharedDirector] setView:glView];
    CCScene *scene = [StarVideoView scene];
    [[CCDirector sharedDirector] runWithScene:scene];
    

    }

    并在您的 viewDidLoad 方法中调用此方法 [自设置Cocos2D];

    这里 startVideoView 是我的 ccscene 类,当然你必须在你的 uiviewcontroller 类中添加 cocos2d.h 库:)

    【讨论】:

    • 您好,此代码仅显示白屏。但是当我在查看调试导航器中看到时,它显示 CCDirectorDisplayLink。这是迄今为止,将 CCScene 添加到我的 UIView 中的最接近的方法。有任何想法吗?谢谢!
    【解决方案2】:

    Cocos2D 在 EAGLView 类中绘制绘图,该类只是 CAEAGLLayer 的包装器。因此,您可以尝试使用关联的EAGLView 创建一个director,然后将 cocos2d open gl 层添加到您的视图中:

    [myView.layer addSublayer:[[CCDirector sharedDirector] openGLView].layer];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多