使用 SpriteKit 沿圆弧旋转 SKSpriteNode

Rotate SKSpriteNode along arc using SpriteKit

我正在尝试找出一种在飞行中(受重力影响)沿弧形路径旋转 SKSpriteNode 对象的方法。我正在使用 SpriteKit 并使用 applyImpulse 抛出对象。问题在于,尽管物体在空中以弧形路径运动,但仍停留在同一位置。

想象一下弓箭手射箭。箭头向上射,应该指向那个方向。一旦箭头开始沿着弧线落下,它应该开始向下旋转。

有没有什么方法可以使用 SpriteKit 物理来自动执行此操作?我应该用不同的方式投掷箭头而不是使用 applyImpulse 吗?我需要自己想出一些算法来根据物体速度进行旋转吗?

在您的 didSimulatePhysicsupdate 中,您可以将精灵旋转到其矢量方向。不确定是否有办法自动实现这一点。

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