如何从正在运行的(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?