Duck
Duck

Reputation: 36013

Cocos2D iPhone - adding a CCLayer on top of another

I am newbie to Cocos2d. I have this layer that represents my main game scene. Lets talk in terms of Cocos2D default template. In this case, my main game scene would be HelloWorldLayer.

Now I want to present a menu. I have create the menu as an individual subclass of CClayer.

How do I make the menu appear using some kind of transition on top of the main scene?

If I use something like

CCScene *menu = [Menu scene];

[[CCDirector sharedDirector] replaceScene: 
[CCTransitionCrossFade transitionWithDuration:0.5f scene:menu]];

I would be using the menu as a scene and replacing the main scene with it. This is not what I want. I want to make the menu appear on top of the main scene, using some kind of transition and if possible fading the main scene to 50% or whatever.

How do I do that?

thanks.

Upvotes: 1

Views: 1388

Answers (1)

hspain
hspain

Reputation: 17568

Instead of replacing the scene, simply make your Menu class a CCLayer and add it existing scene. You can set opacity and add masking sprites as needed to fade out the bottom layer if you need to.

CCLayer* newLayer = [Menu layer];
[self addChild: newLayer];

You will need to handle much of the details on which layer captures input, but this is the basic idea.

Upvotes: 2

Related Questions