2010-07-02 63 views
0

free4machine 会员 PM这个用户问题有关的cocos2d CCMenuItemImage重叠

嗨,

我想打一个样品动画:

出现在屏幕底部的按钮,小当按下此按钮时将出现菜单。 小菜单底部有一个图标,当按下此图标时,小菜单将消失。

按钮,小菜单,图标,都是CCMenuItemImage的实例。

问题:按下图标时小菜单不会消失。看起来该图标不响应触摸事件。

任何建议或帮助将不胜感激

对不起,我英文不好。

这里是代码:

CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ]; 
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target:  self selector:@selector(showSideMenu:)]; 

CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ]; 
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2.  png" target:self selector:@selector(hideSideMenu:)]; 

[ sideMenu addChild: backbutton ]; 

CCMenu *menu = [ CCMenu menuWithItems: bg,button, sideMenu, nil ]; 

[ self addChild: menu]; 

什么了showSideMenu和hideSideMenu也正在sideMenu出现,并通过使用runAction消失。

谢谢。

回答

1

基于代码,我看到的唯一问题是backButton不作为菜单的子项添加。只有bg,button和sideMenu在参数列表中。通过将它添加为bg的子项,它不会触发它自己的选择器,但是bg的。由于bg没有任何定义,没有任何反应。最简单的解决方法是只需在列表中添加后退按钮。您的代码看起来就像这样:

CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ]; 
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target:  self selector:@selector(showSideMenu:)]; 

CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ]; 
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2.  png" target:self selector:@selector(hideSideMenu:)]; 

CCMenu *menu = [ CCMenu menuWithItems: bg,button, sideMenu, backbutton, nil ]; 

[ self addChild: menu]; 

如果您希望每个按钮能够相对于菜单位置,只需设置自己的位置属性。