如何在cocos2d中使用过渡进行popScene?

wil*_*eng 11 transitions cocos2d-iphone

当我在cocos2d中调用relpaceScene或pushScene时,我可以添加一些过渡到它:

[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1 scene:scene]];

但是当我调用popScene时,它不需要参数,也不能添加任何转换.是这样吗?如何使用所需的过渡进行popScene?

Sco*_*tit 20

这个cocos2d论坛中的Per Guy似乎有用:链接到论坛

在声明 - (void)popScene(第402行)之后将其添加到CCDirector.h:

    - (void) popSceneWithTransition: (Class)c duration:(ccTime)t;

Then add this to CCDirector.m, just after the definition of -(void)popScene (line 768):

    -(void) popSceneWithTransition: (Class)transitionClass duration:(ccTime)t;
    {
    NSAssert( runningScene_ != nil, @"A running Scene is needed");

    [scenesStack_ removeLastObject];
    NSUInteger c = [scenesStack_ count];
    if( c == 0 ) {
        [self end];
    } else {
        CCScene* scene = [transitionClass transitionWithDuration:t scene:[scenesStack_ objectAtIndex:c-1]];
        [scenesStack_ replaceObjectAtIndex:c-1 withObject:scene];
        nextScene_ = scene;
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以像这样调用方法:

[[CCDirector sharedDirector] popSceneWithTransition:[CCSlideInRTransition class] durat
Run Code Online (Sandbox Code Playgroud)