Sprite kit双击检测

时间:2014-10-27 16:52:53

标签: ios iphone touch sprite-kit

我在我的游戏中使用spriteKit,我使用以下代码检测单击和双击:

    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch* touch = [touches anyObject];

    if (touch.tapCount == 1){

        [self.tapQueue addObject:@1];

        NSLog(@"touch.tapCount == 1 :)");

    }

    if (touch.tapCount == 2) {

       [self.tapQueue addObject:@2];

       NSLog(@"touch.tapCount == 2 :)");
    }
}

-(void)processUserTapsForUpdate:(NSTimeInterval)currentTime {

    for (NSNumber* tapCount in [self.tapQueue copy]) {

        if ([tapCount unsignedIntegerValue] == 1)
            [self singleTap];

        if ([tapCount unsignedIntegerValue] == 2)
            [self doubleTap];

        [self.tapQueue removeObject:tapCount];
    }
}

此代码检测单击,但当检测到双击时,它会检测单击。我如何区分单击和双击?

由于

1 个答案:

答案 0 :(得分:-1)

您是说在双击期间报告两次点击,一次点击一次,双击一次,然后报告双击?

另外,要尝试回答您的问题,请创建全局tapCount,而不是依赖触摸事件中的tapCount。或者是一个布尔值var tappedOnce,您可以在其中检查以确保其双击。