私はiPhoneで打撃を検出するためにインターネット上で多くのチュートリアルを見てきましたが、私のアプリの要件は、シングルブローとダブルブローの両方を検出して、ユーザーが1回ブローした場合にアクションを実行できるようにし、ユーザーが2回同時にブローした場合にアクションを実行する b.
これを行う方法はありますか?
皆さんありがとう、
私はiPhoneで打撃を検出するためにインターネット上で多くのチュートリアルを見てきましたが、私のアプリの要件は、シングルブローとダブルブローの両方を検出して、ユーザーが1回ブローした場合にアクションを実行できるようにし、ユーザーが2回同時にブローした場合にアクションを実行する b.
これを行う方法はありますか?
皆さんありがとう、
確かに、単一の打撃を検出する方法を知っている場合は、しきい値を備えたタイマーを使用して、その時間内に別の打撃が発生するかどうかを確認できますか? 何かのようなもの -
-(void)userDidBlow {
if (hasBlownOnce) {
hasBlownOnce = NO;
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleBlowTimedOut) object:nil];
// do double-blow stuff
} else {
hasBlownOnce = YES;
[self performSelector:@selector(singleBlowTimedOut) withObject:nil afterDelay:kDoubleBlowTime];
}
}
-(void)singleBlowTimedOut {
hasBlownOnce = NO;
// do single-blow stuff
}
私はそれをテストしていませんが、問題ないようです:)