Этот сводит меня с ума ...
Учитывая, что "плоскость" - это CALayer, я поворачиваю его по оси X:
plane.transform = CATransform3DMakeRotation(180 * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
И это заставляет его вращаться по часовой стрелке, что идеально.
Теперь, в какой-то момент времени, я хочу, чтобы оно вернулось к 0 градусам, поэтому я использую:
plane.transform = CATransform3DMakeRotation(0 * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
Дело в том ... это делает этопротив часовой стрелки, а это не то, что я хочу: (
Я предполагаю, что он использует кратчайший путь вращения, но даже если я скажу ему вместо этого повернуться на 360 градусов, когда это будет сделано, и я скажу этоперезапустите анимацию, она начинается с 360, чтобы перейти к 180, и она идет назад, а не в правильном направлении.
Есть ли способ обойти это?
Что бы я сделал в Actionscript будет выглядеть следующим образом:
if (plane.rotationX == 360) plane.rotationX = 0;
И он возобновится, но если я сделаю это, используя CATransform3DMakeRotation , то оба преобразования столкнутся из-за анимации (я думаю)и это испортилось.
Любая помощь будет высоко ценится!
Спасибо