正如标题所说,我在将 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
.
任何帮助,将不胜感激。谢谢!