如何从正在运行的(uiviewcontroller)应用程序启动 cocos2d 场景

Posted

技术标签:

【中文标题】如何从正在运行的(uiviewcontroller)应用程序启动 cocos2d 场景【英文标题】:how to start a cocos2d scene from a running (uiviewcontroller) app 【发布时间】:2013-03-23 14:14:03 【问题描述】:

自从我到现在为止用整个 cocos2d 做游戏,并且我第一次使用负责启动游戏场景的 UIViewController 的项目工作,我想知道我应该怎么做,因为 appDelegate 是从普通的 UIViewController 开始,如何在按钮上设置方法来启动游戏(例如游戏的第一个场景)?我一直在寻找有关此的示例或讨论,但我没有找到任何东西,我看到的每个示例都是在第一次调用时从 appDelegate 启动游戏场景。

【问题讨论】:

您是否尝试使用启动时创建的 openglview 设置控制器的视图? 你的意思是不要用根控制器设置导航控制器,而是用 setview:glview 调用控制器,我可以用我的自定义视图控制器做同样的事情吗? 从未尝试过,但您可以试一试。 您可以通过在Xcode中安装cocos2d框架来启动项目,并选择带有cocos2d的项目。无需添加额外的代码。 Cocos2d 框架会添加所有代码。 【参考方案1】:

只需导入你的 cocos2d layer.h 和 layer.m 文件 并从视图控制器调用使用以下代码:-

if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
        [CCDirector setDirectorType:kCCDirectorTypeDefault];


    CCDirector *director = [CCDirector sharedDirector];

    EAGLView *glView = [EAGLView viewWithFrame:[self.view bounds]
    pixelFormat:kEAGLColorFormatRGB565 depthFormat:0];

    [director setOpenGLView:glView];


    [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];


    [director setAnimationInterval:1.0/60];
    [director setDisplayFPS:YES];

    [self setView:glView];

    [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];

    [[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];

【讨论】:

以上是关于如何从正在运行的(uiviewcontroller)应用程序启动 cocos2d 场景的主要内容,如果未能解决你的问题,请参考以下文章

切换到新的 UIViewControllers 时如何从层次结构中删除 UIViewControllers?

如何在将 UIViewController 呈现给自定义时更改默认转换

如何从 UIView 推送 UIViewController

如何从情节提要以编程方式加载 UIViewController?

如何从 Table Cell 返回另一个 UIViewController

如何从另一个 UIViewController 重新加载 UITableViewController