Различное расстояние объекта CAAnimation с той же скоростью?

У меня есть несколько объектов для перемещения по путям с разным расстоянием. Как я могу получить одинаковую скорость всех объектов?

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; pathAnimation.speed = 0,5;

Не работает ;(

Если расстояние больше, скорость увеличивается.


person tuvok    schedule 22.07.2011    source источник
comment
Скажи мне кое-что, все объекты достигают конечной точки одновременно, хотя их воспринимаемая скорость отличается от той, которую ты установил на 0,5, верно?   -  person MiguelB    schedule 22.07.2011


Ответы (1)


Я не проверял эту идею, однако, похоже, что скорость определяется как относительная величина.

Вы можете пересчитать его в значение, относящееся к пикселям, если вы можете вычислить длину пути. Скорость анимации будет равна animation.speed = baseSpeedInPixels / thisPathLengthInPixels;, где baseSpeedInPixels — желаемая постоянная базовой скорости.

Это может привести к значениям больше 1,0, если класс анимации этого не понимает, вы можете переназначить значения времени, чтобы сохранить скорость в диапазоне [0,1].

person Gobra    schedule 22.07.2011