我想在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方法中的触摸事件,它还在调用它?
答案 0 :(得分:0)
在活动触摸上取消激活userInteractionEnabled
不会取消当前版本的Cocos2D中的触摸。我创建了一个拉取请求来更改它,因为我认为节点应该只接收触摸事件,而userInteractionEnabled
设置为YES
(https://github.com/cocos2d/cocos2d-iphone/pull/882)
现在,你必须在你的节点中使用某种状态变量处理它,接收触摸。