0

我正在通过一个包含每个可触摸精灵的类来手动处理触摸。此外,每个菜单都是 a CCLayer,当我从一个菜单切换到另一个菜单时,我使用CCTransition###并获取新场景。

所以,这些层“仍然存在”,当我触摸一个菜单时,前一层也会收到它......就像我在一个新的游戏中开始游戏时CCLayer,然后菜单仍然受到多点触摸的影响......

如果我使用单点触控,我可以吞下触控,但游戏必须有多点触控......

我能做些什么?谢谢你们!

4

3 回答 3

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;
}
于 2012-05-03T18:22:03.663 回答
1

您可以像这样将顶层的优先级设置为 0,将其下层的优先级设置为 1。

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0swallowsTouches:YES];

于 2012-05-07T04:33:31.447 回答
0

您可以尝试使用该属性

self.isTouchEnabled = NO;

在层内,您不想接收触摸。

如果您使用CCButton对象,则需要禁用它们。

我希望它有帮助...

问候安塞尔姆

于 2012-05-03T18:13:57.860 回答