2013-05-19 169 views
2

如何切換cocos2d中的場景?我有我的主要類「HellowWorldLayer.h/.m」,但我似乎無法正確切換場景。我曾嘗試:Cocos2d如何切換場景

[[CCDirector sharedDirector] replaceScene:[Race node]]; 
//And 
[[CCDirector sharedDirector] replaceScene:[Race Scene]]; 

我把一個破發點中,我可以看到它是要在新的場景,但我添加到新場景中的按鈕沒有顯示出來。我正在創建按鈕。那麼我將它添加到屏幕在新的場景是這樣的:

[self addChild:Menu]; 

我只是把所有的代碼從HolloWorldLayer.m/h和它複製到新場景(類),但我不能正確轉換。我對xcode和cocos2d很陌生,所以很抱歉,如果這很簡單。

Race.m

#import "Race.h" 
#import "Intermediary.h" 

@implementation Race 


+(CCScene *) scene{ 
    // 'scene' is an autorelease object. 
    CCScene *scene = [CCScene node]; 

    // 'layer' is an autorelease object. 
    Race *layer = [Race node]; 

    // add layer as a child to scene 
    [scene addChild: layer]; 

    // return the scene 
    return scene; 
} 

-(id) init{ 

    if((self=[super init])) { 

     NSLog(@"Racing!"); 
     CCLabelTTF *startLbl = [CCLabelTTF labelWithString:@"Start" fontName:@"Marker Felt" fontSize:20]; 
     CCMenuItemLabel *startMenu = [CCMenuItemLabel itemWithLabel:startLbl block:^(id sender) { 
      NSLog(@"I have been pushed!"); 
     }]; 
     startMenu.position = ccp(50,50); 
     CCMenu *Menu = [CCMenu menuWithItems:startMenu, nil]; 
     [self addChild:Menu]; 


    } 
    return self; 
} 


@end 

回答

1

您的代碼,因爲它是爲我工作。

下面是示例:Download

更好看使用的過渡。

[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[Race scene] ]]; 
+0

感謝您的回覆!我複製了HelloWorldLayer中的場景代碼,然後將這兩個名稱更改爲我的類名稱。該按鈕仍然沒有顯示出來。 –

+0

好吧,讓我看看菜單初始化代碼...確保圖像放置 – Guru

+0

我認爲這就是你的意思。 –