1

我遇到了一个奇怪的 CCMenu 和 CCMenuItem 怪癖,它可能会或可能不会故意成为 cocos2d 库的一部分,所以我不确定是否应该将其报告为错误。

当两个 CCMenu 项目重叠时,添加到菜单中的最后一个将其图像/纹理显示在另一个之上。前任:

CCMenu *menu = [CCMenu menuWithItems:item1, item2, nil]; 
// item2 will appear to be on top of item 1

有趣的是,触摸发生重叠的 item2 会触发 item1 的选择器或块。为什么在进行触摸测试时,层层中视觉上较高的项目实际上较低?有解决方法吗?

4

1 回答 1

1

我查看了 CCMenu 的代码,发现这是因为在测试触摸时,CCMenu 会遍历其子数组并返回它找到的第一个通过命中测试的数组。

第二个按钮出现在第一个按钮的顶部,就像每个孩子在 cocos2d 中的工作方式一样。只要它们都具有相同的 z 顺序,最后添加的将显示在顶部。

我不确定这是否是一个错误,但我确实在 cocos2d 论坛上找到了建议的修复程序,您可以尝试一下。http://www.cocos2d-iphone.org/forum/topic/8554

于 2013-02-13T04:37:33.443 回答