Cocos2d iphone 如何在cocos2d中为精灵或菜单执行功能?

Cocos2d iphone 如何在cocos2d中为精灵或菜单执行功能?,cocos2d-iphone,ccsprite,cclayer,Cocos2d Iphone,Ccsprite,Cclayer,我创建了两个CClayer,一个是gamelayer,另一个是howlayer。gamelayer.m的代码是 -(id)init{ if (self = [super init]) { CCSprite *gamebg = [CCSprite spriteWithFile:@"bg.png"]; gamebg.anchorPoint = CGPointZero; [self addChild:gamebg z:0 tag:1]; HowLayer *howL

我创建了两个CClayer,一个是gamelayer,另一个是howlayer。gamelayer.m的代码是

-(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”,那么我该怎么做?

在你的howlayer中进行简单的黑客攻击:

 -(void)startgame:(id)sender{ 
 gameLayer* parent = (gameLayer*) self.parent; 
 [parent showthegamecontent];
  }
但这可能会给你留下一个警告。。但它是有效的

没有警告的实现是,您必须使用init存储对父级的引用。我觉得没有必要,因为你只需要引用一次