Attach CCScene to EAGLView



我试图将我的CCScene类附加到我的EAGLView。我的EAGLView是类1中的IBOutlet。我连接它,设置和获取它。然后在ViewDidLoad中在Class 1中输入

[[CCDirector sharedDirector] setOpenGLView:self.eaglView];
[[CCDirector sharedDirector] runWithScene:[CCSceneClass node]];

问题是它没有调用我在CCScene类中显示的类(我用NSLogs测试)。不管怎样,让我们说我的CCScene类被命名为CCSceneClass,我将如何正确地连接它从我的ViewDidLoad从Class1(我的UIViewController),使这个方法在我的CCScene类得到调用?

这是我在这个方法中做的一些代码如果这很重要的话:

-(id)initWithEaglView:(EAGLView*)view {
NSLog(@"initWithEAGLView");
        //Attach CCDirector to EAGLView
        director = [CCDirector sharedDirector];
        [director setOpenGLView:view];
        //Make CCLayer and CCScene
        CCScene *scene = [CCScene node];
        CCLayer *layer = [CCLayer node];
        [scene addChild:layer];
        [director runWithScene:scene];
        [director setDisplayFPS:NO];
}

谢谢!

我问题:

1。这两行是什么意思(顺便说一下,第一行出现了一个警告,说没有找到该方法:

[director setDirectorType:kCCDirectorTypeDisplayLink];
[director setAnimationInterval:1.0/60];

我已经有了一个游戏循环在我的CCLayer类,所以这是否意味着我可以摆脱这些行?

这是我唯一剩下的问题了!

谢谢!

你不能"连接"一个CCScene类与OpenGL视图,没有必要真的。

在你设置了eaglView之后,你会像往常一样使用CCDirector运行你的场景:

[[CCDirector sharedDirector] setOpenGLView:self.eaglView];
...
[[CCDirector sharedDirector] runWithScene:[CCSceneClass node]];

如果你需要访问你的场景类中的eaglView,你可以通过CCDirector:

EAGLView* view = [CCDirector sharedDirector].openglView;

更新:

在UIKit应用中初始化Cocos2D视图的完整代码:

CCDirector* director = [CCDirector sharedDirector];
[director setDirectorType:kCCDirectorTypeDisplayLink];
[director setAnimationInterval:1.0/60];
[director setOpenGLView:(EAGLView*)subview];
[director runWithScene:[HelloWorldLayer scene]];

在我的Learn Cocos2D书中有一章更详细地解释了在UIKit应用中集成Cocos2D(反之亦然)。您也可以从该页下载本书的源代码(第二版),并查看第15章的示例项目"ViewBasedAppWithCocos2D"。

相关内容

  • 没有找到相关文章

最新更新