我有一个有 2 层的场景。主层和上面的 hud 层。hud 只有一个带有按钮和计时器标签的菜单。我正在使用CCNode-SFGestureRecognizers ,所以我可以在主层的屏幕中间UIGestureRecognizers
为每个附加标准。CCSprites
奇怪的是,菜单似乎正在吃掉红线右侧区域的所有触摸事件。不仅在菜单的底部,而且一直到屏幕的顶部。如果我不将菜单添加到图层,或者将该图层放在主图层后面,一切正常,但这对我来说在视觉上不起作用。我需要做什么来解决这个问题?
//The hud layer setup
CCMenu *menu = [CCMenu menuWithArray:@[_recordButton, resetButton, debugButton, _playButton]];
[menu setPosition:ccp(windowSize.width - 225, 50)];
[menu alignItemsHorizontallyWithPadding:50];
[self addChild:menu];
//The scene setup in another class
self.mainLayer = [MainLayer node];
[self addChild:_mainLayer z:0];
self.hudLayer = [HudLayer node];
[self addChild:_hudLayer z:1];
编辑:我尝试设置菜单的优先级[menu setHandlerPriority:128];
,当这不起作用时,我继承CCMenu
并覆盖:
-(void) registerWithTouchDispatcher
{
[[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:self priority:200 swallowsTouches:NO];
}
我已经尝试过swallowsTouches:
设置为NO
并且YES
没有区别。