在我的Cocos2d 2.0 iOS遊戲中,我使用CCMenuAdvanced創建了一個滾動菜單。問題在於菜單的不可見部分也似乎在處理觸摸。CCMenuAdvanced即使在它上面有一個精靈時也會被點擊
下面是代碼(以獲得boundaryRect顯示和作物正常需要):
// background is full screen, with all pixels transparent
// except the part where menu shows
CCSprite *menuBackground = [CCSprite spriteWithFile:@"scrollingmenubackground.png"];
//...
[self addChild:menuBackground];
//...
//create menu items
CCMenuAdvanced *settingsMenu = [CCMenuAdvanced menuWithItems:item1, item2, item3, nil];
//...
[menuBackground addChild:settingsMenu];
// foreground is full screen, with an image
// with a transparent hole where the menu shows
CCSprite *foreground = [CCSprite spriteWithFile:@"scrollingmenuforeground.png"];
[menuBackground addChild:foreground];
//...
現在能正常工作,並且菜單顯示,在正確裁剪和處理觸摸。但是,問題是,當我點擊可見菜單下方時,它仍然會處理菜單上的觸摸,即使前面有一個不透明像素的精靈()。
我試過用zorder設置前景比菜單擺弄zorder,但似乎沒有改變任何東西。
menuBackground.zOrder = 1;
settingsMenu.zOrder = 2;
foreground.zOrder = 3;
我也試過菜單優先級設置爲INT_MIN
以及kCCMenuHandlerPriority - 1
,但沒有效果。
如何讓菜單隻響應用戶可見的部分?
感謝 阿南德
你的問題是什麼?這聽起來更像是一個錯誤報告/功能請求給我。這就是CCMenu和CCMenuAdvanced的行爲。而zOrder與輸入無關。 – LearnCocos2D
我希望CCMenuAdvanced只對位於前景的位置(在我的情況下只位於邊界矩形內)做出響應。在滾動看不見的部分,它上面有一個精靈,它不應該對點擊作出響應。我如何實現這一目標? – Anand