0

正如标题所说,我在将 cocos2d 场景添加到 UIView 层时遇到问题。我想spine-cocos2d-objc在我现有的项目中使用,但我面临一些问题。

我在这里发现了类似的问题,但不幸的是,没有答案。

spine-cocos2d-objc已成功集成到我现有的项目中,但我不知道如何在我的某些视图控制器中创建场景。

在这个例子中,它启动了全屏的cocos2d场景。AppDelegate

[self setupCocos2dWithOptions:@{
        CCSetupDepthFormat: @GL_DEPTH24_STENCIL8,
        CCSetupTabletScale2X: @YES,
        CCSetupScreenMode: CCScreenModeFixed,
        CCSetupScreenOrientation: CCScreenOrientationPortrait,
        CCSetupShowDebugStats: @YES,
    }];

[[CCDirector sharedDirector] runWithScene:[SpineboyExample scene]];

但在我的项目中,我只需要在一些视图控制器中启动 cocos2d。备注:我知道 cocos2d 是一个很老的框架。但我认为,这是我唯一的选择。

SpriteKit 在与 UIKit 集成方面实际上比 cocos2D 容易得多,但遗憾的是,使用 SpriteKit 的 Spine 运行时不支持最新的 Spine 功能。

有任何想法吗?

编辑

这是迄今为止我尝试过的最接近的解决方案。我尝试使用这个将 Cocos2D 中的 CCScene 嵌入到我的 UIView 中

- (void)setupCocos2D {
    CCGLView *glView = [CCGLView viewWithFrame:[[self view] frame]
                                   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 = [GoblinsExample scene];
    [[CCDirector sharedDirector] runWithScene:scene];
}

现在,我可以CCDirectorDisplayLink在我的视图层中看到。但不幸的是,我得到的只是白页。该场景已成功加载所需的所有资产,但它仍然没有出现在我的UIView.

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

4

0 回答 0