在UIKit应用程序中集成cocos2d

时间:2012-02-23 07:22:38

标签: iphone opengl-es cocos2d-iphone

我在现有应用的标签内集成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?

由于 卢卡

2 个答案:

答案 0 :(得分:0)

您还必须拥有所有Cocos2D初始化代码。 Cocos2D创建一个openGL渲染上下文,然后绘制该上下文以显示精灵。如果您查看cocos附带的模板应用程序,在AppDelegate中,会有大量的初始化内容。

我甚至不确定将cocos2d场景合并到现有的iOS应用程序中是否可行(或者如果它很容易)。

答案 1 :(得分:0)

在你完成了所有初始化工作之后,Nick Bull谈到了,你需要注意一件事:cocos2d利用他自己的CCLayer。但是我觉得这个层和所有UIView子类中的层都是一样的。如果您想要更换它们的方式,或者以某种方式链接,您可以在视图中执行任何cocos2d工作人员。这应该是你的起点,祝你好运。