我正在通过一个包含每个可触摸精灵的类来处理这些触摸。此外,每个菜单都是CCLayer
,当我从一个菜单更改为另一个菜单时,我使用CCTransition###
并获取新场景。
因此,图层“仍在那里”,当我触摸一个菜单时,前一层也会收到它...就像我以新的CCLayer
开始游戏一样,然后菜单仍然受到影响多点触摸...
如果我使用单点触控,我可以吞下触摸,但游戏必须有多点触控......
我该怎么办?谢谢大家!
答案 0 :(得分:1)
您需要在任何需要它的图层中使用触摸事件。在图层消耗它之后,触摸将不再传播到“先前”图层。
http://www.cocos2d-iphone.org/api-ref/0.9.0-beta/_c_c_touch_delegate_protocol_8h_source.html
要使用触摸事件,请在ccTouchBegan
委托方法中返回YES。
编辑:更改了方法名称以匹配CCStandardTouchDelegate
- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
if (condition)
return YES;
else
return NO;
}
答案 1 :(得分:1)
您可以将顶层的优先级设置为0,将下层的优先级设置为1,如下所示。
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
答案 2 :(得分:0)
您可以尝试使用该属性
self.isTouchEnabled = NO;
在图层中,您不希望接收到触摸。
如果您使用CCButton
个对象,则需要禁用它们。
我希望它有所帮助...
问候安塞姆