[英]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.