2015-01-05 2 views
2

Я пытаюсь выяснить метод вращения объекта SKSpriteNode, когда он находится в полете (под воздействием силы тяжести) вдоль дуги. Я использую SpriteKit и бросаю объект, используя applyImpulse. Проблема в том, что объект, несмотря на движение по дуге в воздухе, остается в том же положении.Поворот SKSpriteNode по дуге с помощью SpriteKit

Представьте себе стрельбу стрельбы. Стрелка стреляет вверх и должна указывать вверх в этом направлении. Как только стрелка начнет падать вдоль дуги, она должна начать вращаться вниз.

Есть ли способ автоматизировать это с помощью физики SpriteKit? Должен ли я бросать стрелу по-другому, а не использовать applyImpulse? Нужно ли мне придумывать какой-то алгоритм для вращения, основанного на скорости объектов?

ответ

4

В вашем didSimulatePhysics или вашем update вы можете вращать свой спрайт в направлении своего вектора. Не уверен, что это способ автоматически сделать это.

let angle = atan2(mySprite.physicsBody!.velocity.dy, mySprite.physicsBody!.velocity.dx) 
mySprite.zRotation = angle 
+0

нет автоматизма, только вышеприведенное и доверенное преобразование «направление вектора в угол» – LearnCocos2D

Смежные вопросы