Различно разстояние на 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