2013-05-18 17 views
0

我有这样的:我该如何暂停所有动作,同时消失cclayer然后恢复cocos2d的游戏玩法?

-(void)fadeBackground 
{ 
    ccColor4B color = {0,0,0,255}; 
    CCLayerColor *fadeLayer = [CCLayerColor layerWithColor:color]; 
    [self addChild:fadeLayer z:7]; 
    fadeLayer.opacity = 0; 


    id fade = [CCFadeTo actionWithDuration:1.0f opacity:200];//200 for light blur 
    id calBlk = [CCCallBlock actionWithBlock:^{ 
     //show pause screen buttons here 
     //[self showPauseMenu]; 
    }]; 
    id fadeBack = [CCFadeTo actionWithDuration:2.0f opacity:0]; 

    id sequen = [CCSequence actions:fade, calBlk, fadeBack, nil]; 

    [fadeLayer runAction:sequen]; 

} 

如何停止的动作而发生淡入当fadeBack出现恢复呢?

回答

2

[[CCDirector sharedDirector] pause]; & [[CCDirector sharedDirector] resume];将暂停,并在所有的精灵/层或任何其他的cocos2d节点恢复调度和行动。

如果要暂停/继续特定CCLayer包含它的孩子一起,

////for pausing 
[myLayer pauseSchedulerAndActions]; 
for(CCNode *child in myLayer.children){ 
[child pauseSchedulerAndActions]; 
} 

///for resuming 
[myLayer resumeSchedulerAndActions]; 
for(CCNode *child in myLayer.children){ 
[child resumeSchedulerAndActions]; 
} 
1

要暂停,您可以使用此调用,需要为游戏中的每个菜单调用相同的值。

[self pauseSchedulerAndActions]; 
    [menu pauseSchedulerAndActions]; 

要恢复:

[self resumeSchedulerAndActions]; 
    [menu pauseSchedulerAndActions]; 
相关问题