了解cocos2d场景,它们是如何工作的?

时间:2013-04-27 00:49:45

标签: replace cocos2d-iphone scene

我对cocos2d中的场景创建和替换感到困惑,所以我会问我究竟是什么似乎被误解了。我有一个游戏(完全工作,除了场景交换,可悲)与一些小游戏,现在,如果我不得不这样做开始与cocos2d场景作为菜单我不会有任何问题,但因为我做到这一点开始UIKit我真的需要更好地了解场景如何解决它。

首先,是否需要在appDelegate中启动一个场景?因为我是从UIkit开始的,所以在你选择游戏之后必须显示场景(比如说,有3种选择),我应该把这个场景放在appDelegate中?到底在哪里?我把场景放在这个方法中:

-(void) directorDidReshapeProjection:(CCDirector*)director
{

    if(director.runningScene == nil) 
        //start scene
}

如果我放置FIRST场景,UIKit部分效果很好,当我开始将“游戏编号TWO”作为第一选择时(比如说我们首先玩这个游戏)我得到Open GL 0x0506错误,然后场景开始。

如果我放置第一个场景,我选择第一个游戏,然后退出并选择第二个游戏,场景被正确替换而没有错误。

如果我放置了第一个场景,并且我开始了“游戏编号1”,它(显然)是有效的,因为他已经加载了场景,但我不知道哪个游戏将首先作为用户启动。

我尝试在appDelegate加载“介绍场景”,但我遇到了同样的问题。问题基本上是“如果你有多个场景并且不知道哪个将被称为第一个场景,如何开始场景”......

1 个答案:

答案 0 :(得分:0)

“iOS入门”文档将真正解决很多这些问题。您可以在developer.apple.com - https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007072

找到它

它解释了AppDelegate实际上是什么,以及如何正确使用它。目前还不清楚如何混合UIKit和cocos2d,但上面的链接为我清理了很多。另一个非常有用的资源是Ray Wenderlich的教程 - http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit

从鸟瞰图来看,CCDirector继承自UIWindow。混合UIKit和cocos2d就像使用UIKit构建界面一样简单,然后在某个时刻打开UIWindow并允许CCDirector启动cocos2d。从某种意义上说,这些组件几乎就是两个完全独立的实体。