1

CCMenuとCCMenuItemの奇妙な癖に遭遇しました。これは、故意にcocos2dライブラリの一部である場合とそうでない場合があるため、バグとして報告する必要があるかどうかわかりません。

2つのCCMenuアイテムが重なると、メニューに最後に追加されたアイテムの画像/テクスチャが他のアイテムの上に表示されます。元:

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

興味深いことに、オーバーラップが発生するアイテム2に触れると、アイテム1のセレクターまたはブロックがトリガーされます。タッチをテストするときに、レイヤー層の視覚的に高いアイテムが実際に低いのはなぜですか?これに対する回避策はありますか?

4

1 に答える 1

1

CCMenuのコードを調べたところ、タッチのテスト時にCCMenuが子配列を調べて、ヒットテストに合格した最初の配列を返すためにこれが発生することがわかりました。

2番目のボタンは、すべての子供がcocos2dで作業するのと同じように、最初のボタンの上に表示されます。それらがすべて同じzオーダーである限り、最後に追加されたものが一番上に表示されます。

これがバグかどうかはわかりませんが、cocos2dフォーラムで試してみることのできる修正案を見つけました。http://www.cocos2d-iphone.org/forum/topic/8554

于 2013-02-13T04:37:33.443 に答える