我正在通过一个包含每个可触摸精灵的类来手动处理触摸。此外,每个菜单都是 a CCLayer
,当我从一个菜单切换到另一个菜单时,我使用CCTransition###
并获取新场景。
所以,这些层“仍然存在”,当我触摸一个菜单时,前一层也会收到它......就像我在一个新的游戏中开始游戏时CCLayer
,然后菜单仍然受到多点触摸的影响......
如果我使用单点触控,我可以吞下触控,但游戏必须有多点触控......
我能做些什么?谢谢你们!
我正在通过一个包含每个可触摸精灵的类来手动处理触摸。此外,每个菜单都是 a CCLayer
,当我从一个菜单切换到另一个菜单时,我使用CCTransition###
并获取新场景。
所以,这些层“仍然存在”,当我触摸一个菜单时,前一层也会收到它......就像我在一个新的游戏中开始游戏时CCLayer
,然后菜单仍然受到多点触摸的影响......
如果我使用单点触控,我可以吞下触控,但游戏必须有多点触控......
我能做些什么?谢谢你们!
您需要在任何需要它的层中使用触摸事件。在一个层消耗它之后,触摸将不再传播到“先前”层。
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;
}
您可以像这样将顶层的优先级设置为 0,将其下层的优先级设置为 1。
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0swallowsTouches:YES];
您可以尝试使用该属性
self.isTouchEnabled = NO;
在层内,您不想接收触摸。
如果您使用CCButton
对象,则需要禁用它们。
我希望它有帮助...
问候安塞尔姆