簡體   English   中英

不同場景過渡時的奇怪行為

[英]odd behavior when transition of different scenes

我希望在啟動游戲之前制作一些自定義圖片(例如游戲開發者的一些徽標和信息)。在cocos2d廟宇中,只有一個IntroLayer可以顯示徽標,所以我決定在進入之前添加更多場景以顯示其他信息游戲主菜單。在IntroLayer.h中

//this is the template code    
@interface IntroLayer : CCLayer
{
}

+(CCScene *) scene;

@end

//this is the new scene,I hope to display after the IntroLayer
@interface SecondScene : CCLayer
{
}

+(CCScene*) scene;

@end

//In IntroLayer.m
@implementation IntroLayer

//I change the replaceScene function from [HelloWorldLayer node] to[SecondScene scene]
-(void) onEnter
{
    [super onEnter];
    [[CCDirector sharedDirector] replaceScene:
     [CCTransitionFade transitionWithDuration:1.0 scene:[SecondScene scene]]];
}
@end

@implementation SecondScene

+(CCScene*)scene
{
    CCScene *scene = [CCScene node];
    SecondScene *layer = [SecondScene node];
    [scene addChild:layer];
    return scene;
}

-(id)init
{
    if (self = [super init]) {
        CGSize size = [[CCDirector sharedDirector] winSize];
        CCSprite *background = [CCSprite spriteWithFile:@"LOGO.png"];
        background.position = ccp(size.width/2, size.height/2);
        [self addChild: background];
    }
    return  self;
}

//I hope the main game scene display after the SecondScene
-(void)onEnter{
    [[CCDirector sharedDirector] replaceScene:
     [CCTransitionFade transitionWithDuration:1.0 scene:[HelloWorldLayer scene]]];
    [super onEnter];
}

@end

但是當我運行此代碼時,我發現它沒有按預期運行。SecondScene和HelloWorldLayer幾乎同時顯示,實際上最后屏幕上只剩下SecondScene,HelloWorldLayer很快消失了。真是太感謝了。

如果要第二個轉換跟隨第一個轉換,則需要重寫onEnterTransitionDidFinish方法:

-(void)onEnterTransitionDidFinish{
    [super onEnterTransitionDidFinish];
    [[CCDirector sharedDirector] replaceScene:
     [CCTransitionFade transitionWithDuration:1.0 scene:[HelloWorldLayer scene]]];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM