我遇到了一个奇怪的CCMenu和CCMenuItem的怪癖,它可能或者可能不是cocos2d库的一部分,所以我不确定是否应该将它报告为bug。
当两个CCMenu项目重叠时,最后添加到菜单中的一个显示其图像/纹理高于另一个。 例如:
CCMenu *menu = [CCMenu menuWithItems:item1, item2, nil];
// item2 will appear to be on top of item 1
有趣的是,触摸发生重叠的item2会触发item1的选择器或块。为什么在测试触摸时,图层中视觉上较高的项目实际上较低?有解决方法吗?
答案 0 :(得分:1)
我查看了CCMenu的代码并发现这是因为在测试触摸时CCMenu通过其子数组并返回它发现的第一个通过命中测试。
第二个按钮出现在第一个按钮上,每个孩子在cocos2d中的工作方式相同。只要它们都具有相同的z顺序,最后添加的就会显示在顶部。
我不确定这是不是一个bug,但我确实在你可以尝试的cocos2d论坛上找到了一个建议的修复程序。 http://www.cocos2d-iphone.org/forum/topic/8554