禁用触摸touchMoved cocos2d v3?

时间:2014-07-20 20:24:28

标签: ios cocos2d-iphone touches user-interaction

我想在Cocos2d 3.1中做一些相当简单的事情。我在CCSprite子类上接收触摸事件,并且当使用简单的containsTouchLocation辅助方法从精灵中滑出触摸时,我试图停止接收触摸事件。

但是,如果我在self.userInteractionEnabled = NO;方法中执行touchMoved:,它仍会调用touchMoved!

这是我的完全touchMoved:方法:

- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
    self.userInteractionEnabled = NO;
    int color = ([self containsTouchLocation:touch] ? 128 : 255);
    self.color = [CCColor colorWithCcColor3b:ccc3(color, color, color)];
} 

为什么即使我正在尝试关闭touchMoved方法中的触摸事件,它还在调用它?

1 个答案:

答案 0 :(得分:0)

在活动触摸上取消激活userInteractionEnabled不会取消当前版本的Cocos2D中的触摸。我创建了一个拉取请求来更改它,因为我认为节点应该只接收触摸事件,而userInteractionEnabled设置为YEShttps://github.com/cocos2d/cocos2d-iphone/pull/882

现在,你必须在你的节点中使用某种状态变量处理它,接收触摸。