2011-09-27 37 views
1

我創建了兩個CCLayers,一個是遊戲玩家,另一個是howlayer。 gamelayer.m的代碼是如何爲cocos2d中的精靈或菜單做一個函數?

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

    CCSprite *gamebg = [CCSprite spriteWithFile:@"bg.png"]; 
    gamebg.anchorPoint = CGPointZero; 
    [self addChild:gamebg z:0 tag:1]; 

    HowLayer *howLayer = [HowLayer node]; 
    [self addChild:howLayer]; 
    [self schedule:@selector(showthegamecontent:) interval:0.4]; 
} 
return self; 
} 

howlayer的代碼是

-(id)init{ 
if (self=[super init]) { 
    CCSprite *howbg = [CCSprite spriteWithFile:@"translucentbg.png"]; 
    howbg.anchorPoint = CGPointZero; 
    [self addChild:howbg z:5 tag:1]; 

    CCMenuItem *howmenu = [CCMenuItemImage itemFromNormalImage:@"how.png" 
                selectedImage:@"how.png" 
                  target:self 
                 selector:@selector(startgame:)]; 
    CCMenu *ccMenuhowmenu = [CCMenu menuWithItems:howmenu, nil]; 
    ccMenuhowmenu.position=ccp(517,384); 
    [self addChild:ccMenuhowmenu z:5 tag:2]; 
} 
return self; 
} 

-(void)startgame:(id)sender{ 
[self removeAllChildrenWithCleanup:YES]; 
} 

我想要做的功能是這樣的:

當我點擊howlayer菜單時,Howlayer會刪除(我已經完成),然後遊戲開始,調用選擇器'showthegamecontent',那麼我應該怎麼做?

回答

0
在howlayer

簡單的黑客:

-(void)startgame:(id)sender{ 
gameLayer* parent = (gameLayer*) self.parent; 
[parent showthegamecontent]; 
    } 

,但它可能讓你一個警告。但它的工作原理..

毫無預兆的實現是,你必須將其存儲到一個參考父母與你初始化。我覺得這是不必要的,因爲你只需要參考一次。

相關問題