关于cocos2d CCMenuItemImage重叠的问题

时间:2010-07-02 08:37:59

标签: cocos2d-iphone

free4machine 会员 PM这个用户

您好,

我想制作一个示例动画:

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

按钮,小菜单,图标,都是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做的是使用runAction使sideMenu出现和消失。

感谢。

1 个答案:

答案 0 :(得分: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];

如果您希望每个按钮相对于菜单定位,只需设置它们的位置属性。