複雑な問題があります。iOS用のツイスターゲームを作っています。ホイールの矢印を指でドラッグできます。ユーザーがスワイプしているときに回転させたくありません。
矢印をゆっくりと回転させると、ゆっくりと移動し、最後に停止するか、ユーザーができるだけ速くスワイプすると、矢印はできるだけ速く回転する必要があります。
現在、矢印をドラッグ可能にするこのコードがあります。
どうすればこのアニメーションを行うことができますか?
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];
CGPoint startPoint = CGPointMake(arrowImage.center.x, arrowImage.center.y);
CGPoint endPoint = CGPointMake(gestureStartPoint.x, gestureStartPoint.y);
angleStartVal = ((((atan2((endPoint.y - startPoint.y) , (endPoint.x - startPoint.x)))*180)/M_PI)+90);
timerStart = CFAbsoluteTimeGetCurrent();
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];
CGPoint startPoint = CGPointMake(arrowImage.center.x, arrowImage.center.y);
CGPoint endPoint = CGPointMake(currentPosition.x, currentPosition.y);
angleVal = ((((atan2((endPoint.y - startPoint.y) , (endPoint.x - startPoint.x)))*180)/M_PI)+90);
arrowImage.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(angleVal));
//NSLog(@"angle: %f",angleVal);
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
}