gpt4 book ai didi

ios - 将 CCScene 附加到 EAGLView

转载 作者:行者123 更新时间:2023-12-01 19:25:07 24 4
gpt4 key购买 nike

我正在尝试将我的 CCScene 类(class)附加到我的 EAGLView。所以我的 EAGLView 是 1 类中的 IBOutlet。我连接它并设置和获取它。然后在我的 Class 1 的 ViewDidLoad 中,我这样做:

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

问题是它没有调用我在 CCScene 类中显示的类(我用 NSLogs 测试过)。无论如何,可以说我的 CCScene 类名为 CCSceneClass,我将如何从 Class1(我的 UIViewController)的 ViewDidLoad 正确连接它,以便调用我的 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 View “连接”起来,实际上也没有必要。

设置好 eaglView 后,您将照常使用 CCDirector 运行场景:

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

如果您需要访问场景类中的 eaglView,您可以通过 CCDirector 获得:
EAGLView* view = [CCDirector sharedDirector].openglView;

更新:

在 UIKit 应用中初始化 Cocos2D View 的完整代码:
CCDirector* director = [CCDirector sharedDirector];
[director setDirectorType:kCCDirectorTypeDisplayLink];
[director setAnimationInterval:1.0/60];
[director setOpenGLView:(EAGLView*)subview];
[director runWithScene:[HelloWorldLayer scene]];

我的 Learn Cocos2D book里有一章更详细地解释 Cocos2D 在 UIKit 应用程序中的集成(反之亦然)。您也可以下载 book's source code (第 2 版)从该页面查看第 15 章示例项目“ViewBasedAppWithCocos2D”。

关于ios - 将 CCScene 附加到 EAGLView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8147444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com