2012-12-17 61 views
0

爲了找出選定的級別,我想將選定的按鈕信息共享到替換的場景。我該怎麼做?在更換Cocos2D中的場景時共享菜單信息(按鈕信息)

CCLabelBMFont *label = [CCLabelBMFont labelWithString:@"Lavel_2" fntFile:@"font.fnt"]; 
     CCMenuItemLabel *titem = [CCMenuItemLabel itemWithLabel:label target:self selector:@selector(sceneLoader:)]; 
     CCMenu *menu = [CCMenu menuWithItems: titem, nil]; 
     menu.position = ccp(screenSize.width/2, screenSize.height/2); 
     [self addChild:menu]; 


- (void)sceneLoader:(id)sender { 
    [[CCDirector sharedDirector] replaceScene: [GameLayer scene]]; 
} 

回答

0

標記您的項目,然後將標籤設置爲您GameLayer

這樣的事情...

titem.tag = 777; 

... 

- (void)sceneLoader:(CCNode)sender { 
    GameLayer *gameLayer = [GameLayer scene]; 
    gameLayer.gameLevel = sender.tag; 

    [[CCDirector sharedDirector] replaceScene: gameLayer]; 
} 
-1

對於樣的操作我用單身

file.h

@interface YourClassName : NSObject 
+ (id)sharedInstance; 
@property (nonatomic,retain) NSString * selectedLevel; 

file.m

@implementation YourClassName 
@synthesize selectedLevel; 
+ (id)sharedInstance { 
    static YourClassName *sharedInstance = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     sharedInstance = [[self alloc] init]; 
    }); 
    return sharedInstance; 
} 

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
     selectedLevel = [NSString string]; 
    } 
    return self; 
} 

,如果你想使用它只需調用[[YourClassName sharedInstance] selectedLevel或組[[YourClassName] setSelectedLevel]

希望這將幫助你。

+0

只是爲了知道,爲什麼減號? –

0

爲您的場景創建單獨的初始值設定項。或至少有一個與枚舉:

[[GameLayer alloc] initWithButton:kSceneLoaderButton];