2013-02-13 47 views
1

我遇到了一個奇怪的CCMenu和CCMenuItem,可能或不可能是有意識的cocos2d庫的一部分,所以我不確定我是否應該報告它是一個錯誤。Cocos2d - 奇怪的CCMenu和CCMenuItem行爲 - 不正確的命中測試層順序

當兩個CCMenu項目重疊時,最後添加到菜單中的項目顯示其圖像/紋理在另一個之上。 例:

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

有趣的是,觸摸ITEM2其中發生重疊觸發ITEM1的選擇器或塊。爲什麼在測試觸摸時,圖層中視覺上較高的項目實際上較低?有沒有解決方法?

回答

1

我看了一下CCMenu的代碼,發現發生這種情況的原因是,當測試觸摸時,CCMenu通過它的子數組並返回第一個,它發現通過了一個命中測試。

第二個按鈕以與每個小孩在cocos2d中工作的方式相同的方式出現在第一個按鈕上。只要它們具有相同的z順序,最後添加的就顯示在最上面。

我不確定這是否是一個錯誤,但我確實在可以嘗試的cocos2d論壇上找到了一個建議的修復方法。 http://www.cocos2d-iphone.org/forum/topic/8554

+0

該頁面上的解決方案完美工作。我不確定爲什麼這不是默認的功能,但希望他們將在未來看看。謝謝! – 2013-02-14 02:42:36