0

有人可以建议或指向我如何切换 CCLayer 的链接,就像

[ [CCDirector sharedDirector] replaceScene: [SomeCustomScene scene] ];

我计划在我的游戏项目中使用 CCLayers 来管理菜单系统和关卡,而不是使用 CCScenes。我正计划像 sharedDirector 一样创建一个“SharedLayer”(单例)来交换级别和菜单。

例如:[ [MySharedLayer sharedLayer] replaceLayer: [MyCustomLayer node] ];

有没有更好的方法。请指教

4

2 回答 2

0

用途:CCLayerMultiplex

CCLayerMultiplex是一个 CCLayer,能够多路复用它的子级。

特征:

  • 它支持一个或多个孩子
  • 一次只有一个孩子活跃

参考:

a) http://www.cocos2d-iphone.org/api-ref/1.0.0/interface_c_c_layer_multiplex.html

B) http://books.google.ca/books?id=9CQL8t6Eob0C&pg=PA104&lpg=PA104&dq=CCMultiplexLayer&source=bl&ots=AgsaLtHNyX&sig=vpYxnf4jUeuQHauxmmIuuv6MJzU&hl=en&sa=X&ei=Tn_WUI3jBsmCqgHpo4DYCw&ved=0CE0Q6AEwAw#v=onepage&q=CCMultiplexLayer&f=false

方法:

  - (void) switchTo:(unsigned int) n;

将允许您在图层之间切换。

于 2012-12-23T03:51:43.307 回答
0

感谢@sg7 的反馈。我觉得创建单例 CCLayer 是一种交换图层的好方法,就像 CCDirector 替换场景一样,因为在我的项目中,我打算只有一个场景。如果我试图保留一堆层以进行快速交换,我肯定会采用 CCLayerMultiplex 路线。

在我的情况下,我采取了不同的路线。我用 CCLayer 属性(当前)和 switchLayer 方法制作了我的 SceneMgr 类(继承自 CCScene)的单例。

//I can now switch layers like this...
//There is a static SceneMgr being used, so only one instance exists
[ [SceneMgr scene].current switchLayer: myNewLayer withAction: fadeIn];
于 2012-12-26T21:58:59.957 回答