Cocos2d iphone CCNode+;SFgestureRecognitor';他在和ccTouch*合作吗?

Cocos2d iphone CCNode+;SFgestureRecognitor';他在和ccTouch*合作吗?,cocos2d-iphone,uigesturerecognizer,Cocos2d Iphone,Uigesturerecognizer,我正在使用CCNode+SFgestureRecognitor在一些cocos2d节点上进行一些平移手势,但我还有其他节点只使用正常的CCTouchBegined/Moved/Ended并使用CCTouchOneByOneDelegate 但我遇到了冲突。使用ccTouch的重叠,我只需设置燕子触摸:否。因为基本上我所做的是根据触摸的方向(主要是水平还是垂直)以及方向是否匹配特定节点允许的方向来确定在移动的ccTouchesMoved中使用哪个触摸,该节点通过取消所有其他目标处理程序来声明触摸

我正在使用CCNode+SFgestureRecognitor在一些cocos2d节点上进行一些平移手势,但我还有其他节点只使用正常的CCTouchBegined/Moved/Ended并使用CCTouchOneByOneDelegate

但我遇到了冲突。使用ccTouch的重叠,我只需设置
燕子触摸:否
。因为基本上我所做的是根据触摸的方向(主要是水平还是垂直)以及方向是否匹配特定节点允许的方向来确定在移动的
ccTouchesMoved
中使用哪个触摸,该节点通过取消所有其他目标处理程序来声明触摸

但是,当一些节点使用手势识别器时,当方向不在该节点允许的方向时,似乎没有一种简单的方法让我告诉触摸取消。在我可以确定其他触摸是否应要求触摸之前,应先调用
GestureRecognitizer
get。我只是不知道如何取消手势的触摸


有什么好的、干净的方法可以做到这一点吗?

因此,
手势识别器应该在CCNode+sfgestureRecograiners.m中开始使用
,但我没有正确的翻译/速度信息,但将我自己的信息放在代理中。代理中的
shouldReceiveTouch
方法也没有此信息

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
    if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
        UIPanGestureRecognizer *pan = (UIPanGestureRecognizer*)gestureRecognizer;

        CGPoint translation = [pan translationInView:pan.view];
        CGPoint velocity = [pan velocityInView:pan.view];

        CGPoint dragVector = /* detect direction of the translation/velocity */

        // if it was a horizontal drag return YES, otherwise NO
        if (dragVector.x != 0 && dragVector.y == 0) {
            return YES;
        }
        return NO;
    }
    return YES;
}

SFgestureRecognitor只是将所有信息传递给您的代理,因此“它没有正确的…”是错误的描述。