나는 Cocos2d 3.1에서 아주 간단한 것을하려고 노력하고있다. CCSprite 하위 클래스에서 터치 이벤트를 받고 있는데 터치가 단순한 containsTouchLocation
도우미 메서드를 사용하여 스프라이트에서 벗어난 경우 터치 이벤트 수신을 중단하려고합니다.touchMoved cocos2d v3을 터치하지 않으시겠습니까?
그러나 작동하지 않는 것은 touchMoved:
메서드에서 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)];
}
입니까?
현재 터치가 현재 터치에만 영향을 미칩니 까? 즉, 현재 터치가 이동 및 종료 이벤트를 수신 할 수있는 동안 향후 터치해도 비활성화됩니다. – LearnCocos2D
@ LearnCocos2D 예, 미래의 모든 접촉을 중지합니다. 현재의 터치를 어떻게 멈출 수 있습니까? –
내가 조사한 바에 따르면 이렇게 할 방법이 없습니다. 그래서 그 동안 나는 BOOL을 사용했고 필요할 때 코드를 호출하지 않을 것입니다. 아직 작동중인 터치에 대해 터치 이벤트를 중지 할 수있는 방법이 있는지 알고 있습니까? –