2011-09-21 27 views
0

这是我的问题。我有一个经典的CCLayer子类。在init方法中,我创建了一个CCMenuItem,并将其添加到我的主层:Cocos2D CCMenuItem通过其他CCLayer不响应

CCMenuItemFont *back = [CCMenuItemFont itemFromString:@"back" target:self selector:@selector(back)]; 
    [back setPosition:CGPointMake(30, 30)]; 
    [self addChild:back]; 

我不明白为什么,方法“回”不叫。

在此先感谢

回答

0

试试这个。

CCMenuItemFont *back = [CCMenuItemFont itemFromString:@"back" target:self selector:@selector(back:)]; 

,并更改为你的背部方法..

-(void) back: (id) sender { 
1

您需要将菜单项添加到CCMenu,而不是直接到你的层。

CCMenuItemFont *back = [CCMenuItemFont itemFromString:@"back" target:self selector:@selector(back)]; 
[back setPosition:CGPointMake(30, 30)]; 

CCMenu *menu = [CCMenu menuWithItems:back,nil]; 
[menu setPosition:CGPointZero]; 
[self addChild:menu]; 

如果不工作,你的背法可能需要接受传递的参数时,按下菜单按钮,像这样:

-(void) back:(CCMenuItem*) item; 

如果这是你需要的情况下将参数添加到@selector调用中:

...selector:@selector(back:)];