我在现有应用的标签内集成cocos2d场景时遇到了一些麻烦。 我使用cocos2d附带的Xcode模板开发了场景,它工作正常,但当我尝试在现有应用程序上加载相同的场景时,所有出现的都是黑屏。
这是我加载链接到选项卡
的UIViewController时运行的代码-(void)viewDidLoad {
director = [CCDirector sharedDirector]; //declared in the header file
//declared in the header file, sized as whole screen minus the tab bar
coolview = [CCGLView viewWithFrame:CGRectMake(0,0, 320,321) pixelFormat:kEAGLColorFormatRGB56 depthFormat:0 preserveBackbuffer:NO sharegroup:nil multiSampling:NO numberOfSamples:0];
[director setView:coolview];
[self setView:coolview];
[director setAnimationInterval:1.0/60];
[director setDelegate:self];
[director setProjection:kCCDirectorProjection2D];
[director runWithScene:[HelloWorldLayer scene]];
}
知道我为什么要黑屏?我错过了什么?
执行HelloWorld层中的代码,对象被实例化,但看起来它们似乎没有被渲染。
我也得到以下反馈:
OpenGL error 0x0501 in -[CCShaderCache loadDefaultShaders] 174
OpenGL error 0x0501 in -[CCTextureAtlas initVAO] 167
OpenGL error 0x0501 in -[CCDirector setView:] 308
OpenGL error 0x0501 in -[CCTextureAtlas initVAO] 167
但我无法找到错误代码的含义。 我正在使用cocos2d版本2.
提前感谢您的帮助 卢卡
稍微更新:版本1.0.1不会发生此问题,将CCGLView替换为EAGLView。 所以我认为这可能是这个版本的一个小错误。
不幸的是我无法切换到1.0.1因为我需要一些仅与cocos2d v2.0一起发布的box2d v2.2的功能。 我正在尝试使用cocos v1.0.1制作box2d v2.2,但它变得非常难看!
任何人都知道如何在2.0中修复它或者至少指出我正确的方向?问题出在哪里?在CCDirector或CCGLView?
由于 卢卡
答案 0 :(得分:0)
您还必须拥有所有Cocos2D初始化代码。 Cocos2D创建一个openGL渲染上下文,然后绘制该上下文以显示精灵。如果您查看cocos附带的模板应用程序,在AppDelegate中,会有大量的初始化内容。
我甚至不确定将cocos2d场景合并到现有的iOS应用程序中是否可行(或者如果它很容易)。
答案 1 :(得分:0)
在你完成了所有初始化工作之后,Nick Bull谈到了,你需要注意一件事:cocos2d利用他自己的CCLayer。但是我觉得这个层和所有UIView子类中的层都是一样的。如果您想要更换它们的方式,或者以某种方式链接,您可以在视图中执行任何cocos2d工作人员。这应该是你的起点,祝你好运。