0

誰かがCCLayerを同じように切り替える方法についてのアドバイスやリンクを教えてください。

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

ゲーム プロジェクトでメニュー システムとレベルを管理するために、CCScenes を使用する代わりに CCLayers を使用することを計画しています。レベルとメニューを交換するために、sharedDirector と同じように「SharedLayer」(Singleton) を作成することを計画しています。

例えば:[ [MySharedLayer sharedLayer] replaceLayer: [MyCustomLayer node] ];

より良いアプローチはありますか。お知らせ下さい

4

2 に答える 2

0

Thank you @sg7 for your feedback. I feel comfortable that creating a Singleton CCLayer is a good approach of swapping Layers, just like CCDirector replaces Scenes, since in my projects, I intend to have just one Scene. If I was trying to keep a stack of Layers for fast swapping I would have definitely taken the CCLayerMultiplex route.

I took a different route in my case. I made a Singleton of my SceneMgr class (inherited from CCScene) with a CCLayer property(current) and a switchLayer method.

//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 に答える
0

使用: CCLayerMultiplex

CCLayerMultiplexは、その子を多重化する機能を持つ CCLayer です。

特徴:

  • 1 人以上の子供をサポートします。
  • 一度にアクティブになる子は 1 人だけです

参照:

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 に答える