我正在试图找出一种方法,用于在沿着弧形路径飞行(受重力影响)时旋转SKSpriteNode对象。我正在使用SpriteKit并使用applyImpulse抛出对象。问题是,尽管在空中的弧形路径中行进,物体仍保持在相同的位置。
想象一下射手射箭。箭头向上射击,应朝那个方向指向上方。一旦箭头开始沿弧线下降,它应该开始向下旋转。
有没有办法使用SpriteKit物理自动化?我应该用不同的方式抛出箭头而不是使用applyImpulse吗?我是否需要根据物体速度自行提出一些算法进行旋转?
答案 0 :(得分:4)
在您的didSimulatePhysics
或update
中,您可以将精灵旋转到其矢量。不确定是否有办法自动实现这一点。
let angle = atan2(mySprite.physicsBody!.velocity.dy, mySprite.physicsBody!.velocity.dx)
mySprite.zRotation = angle