Я оживляю маятник, который колеблется от 0 градусов до максимум 200 градусов, а затем снова возвращается. Проблема в том, что если маятник поворачивается на 180 градусов, он возвращается к 0 по кратчайшему маршруту, который должен продолжаться по часовой стрелке. И я бы хотел, чтобы это пошло против часовой стрелки. Вот мой код:
('right' - логическое значение, которое ИСТИНА, когда маятник качается слева направо)
- (void)swingPendulum {
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
if (right)
rotationAnimation.toValue = [NSNumber numberWithFloat:degreesToRadians(kMax)];
else
rotationAnimation.toValue = [NSNumber numberWithFloat:degreesToRadians(kMin)];
rotationAnimation.duration = 1.0;
rotationAnimation.repeatCount = 1.0;
rotationAnimation.delegate = self;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
rotationAnimation.removedOnCompletion = NO;
[pendulum.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
Есть идеи, как я могу заставить это работать? Это последняя часть моей головоломки на свингометре, которая отлично работает: D Спасибо!
Michael