#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]];