我正在尝试将我的CCScene类附加到我的EAGLView上。所以我的EAGLView是第一类中的一个IBOutlet,我把它连接起来,然后设置和获取它。然后在我一班的ViewDidLoad里:
[[CCDirector sharedDirector] setOpenGLView:self.eaglView];
[[CCDirector sharedDirector] runWithScene:[CCSceneClass node]];问题在于,它不是调用我在CCScene类中显示的类(我用NSLogs进行了测试)。无论如何,假设我的CCScene类名为CCSceneClass,我如何正确地将它与来自Class1的ViewDidLoad (My 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.这2行的意义是什么(顺便说一下,第一行有一个警告说,没有找到该方法:
[director setDirectorType:kCCDirectorTypeDisplayLink];
[director setAnimationInterval:1.0/60];我已经在我的CCLayer类中有了一个游戏循环,所以这是否意味着我可以去掉这些行呢?
这是我唯一剩下的问题了!
谢谢!
发布于 2011-11-16 11:34:12
您不能将CCScene类与OpenGL视图“连接”,也不需要真正地连接。
在设置了eaglView之后,您将继续正常地使用CCDirector运行场景:
[[CCDirector sharedDirector] setOpenGLView:self.eaglView];
...
[[CCDirector sharedDirector] runWithScene:[CCSceneClass node]];如果需要访问场景类中的eaglView,则可以通过CCDirector获得:
EAGLView* view = [CCDirector sharedDirector].openglView;更新:
在Cocos2D应用程序中初始化UIKit视图的完整代码:
CCDirector* director = [CCDirector sharedDirector];
[director setDirectorType:kCCDirectorTypeDisplayLink];
[director setAnimationInterval:1.0/60];
[director setOpenGLView:(EAGLView*)subview];
[director runWithScene:[HelloWorldLayer scene]];我的学习Cocos2D书籍中有一章更详细地解释了Cocos2D在UIKit应用程序中的集成(反之亦然)。您还可以从该页面下载书籍源代码 (第二版),并查看第15章示例项目"ViewBasedAppWithCocos2D“。
https://stackoverflow.com/questions/8147444
复制相似问题