Анимировать вращение SKSpriteNode

#ios #iphone #objective-c #sprite-kit

#iOS #iPhone #objective-c #набор спрайтов

Вопрос:

Я пытаюсь повернуть an SKSpriteNode лицом к направлению a CGPoint . Мне удалось сделать это вот так:

 CGPoint direction = rwNormalize(offset);

self.player.zRotation = atan2f(direction.y, direction.x);
 

Как бы я назвал это так, чтобы SKSpriteNode оно анимировало его вращение, а не было мгновенным. Можно ли также сохранить одинаковую скорость вращения в анимации независимо от того, куда должен поворачиваться спрайт? Заранее спасибо!

Ответ №1:

Использовать SKAction :

 CGPoint direction = rwNormalize(offset);
float angle = atan2f(direction.y, direction.x);
// Speed of rotation (radians per second)
float speed = 2.0;

float duration = angle > M_PI_2 ? angle/speed : (angle   M_PI_2)/speed;
[self.player runAction:
    [SKAction rotateToAngle:angle duration:duration]];