我遇到了一个奇怪的CCMenu和CCMenuItem怪癖,它们可能是故意也可能不是cocos2d库的一部分,因此我不确定是否应该将其报告为bug。
当两个CCMenu项重叠时,最后一个添加到菜单中的项将在另一个项上方显示其图像/纹理。
例如:
CCMenu *menu = [CCMenu menuWithItems:item1, item2, nil];
// item2 will appear to be on top of item 1
有趣的是,触摸发生重叠的item2会触发item1的选择器或块。在测试触摸时,为什么视觉上在图层层中较高的项目实际上较低?有没有解决方法?
最佳答案
我查看了CCMenu的代码,发现发生这种情况的原因是,当测试触摸时,CCMenu会通过其子级数组,并返回通过命中测试的第一个子数组。
第二个按钮显示在第一个按钮的顶部,与每个孩子在cocos2d中的工作方式相同。只要它们都具有相同的z顺序,最后添加的内容就会显示在顶部。
我不确定这是否是错误,但确实在您可以尝试的cocos2d论坛上找到了建议的修复程序。 http://www.cocos2d-iphone.org/forum/topic/8554
关于ios - Cocos2d-奇怪的CCMenu和CCMenuItem行为-错误的点击测试图层顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14846287/