2013-05-18 16 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]; 
相關問題