我在我的游戏中使用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];
}
}
此代码检测单击,但当检测到双击时,它会检测单击。我如何区分单击和双击?
由于
答案 0 :(得分:-1)
您是说在双击期间报告两次点击,一次点击一次,双击一次,然后报告双击?
另外,要尝试回答您的问题,请创建全局tapCount,而不是依赖触摸事件中的tapCount。或者是一个布尔值var tappedOnce,您可以在其中检查以确保其双击。