Cocos2d iphone 如何在cocos2d中为精灵或菜单执行功能?
我创建了两个CClayer,一个是gamelayer,另一个是howlayer。gamelayer.m的代码是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
-(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存储对父级的引用。我觉得没有必要,因为你只需要引用一次