将精灵旋转到矢量

时间:2017-12-16 22:45:29

标签: swift vector sprite-kit

我在数学方面不是太好,但我想要完成的是将我的精灵旋转到应用于它的矢量脉冲的方向。我的游戏是二维

如果我点击我的精灵下方,它会向上移动,如果我点击我的精灵下方并向右,它向上和向左,等等。

我这样做只是将一个归一化的矢量(单位矢量?)脉冲应用到我的精灵,这是我从精灵和我的水龙头之间的位置差异得到的。

let x = (ball.position.x - location.x)
let y = (ball.position.y - location.y)

let vectorLength = sqrt((x*x) + (y*y))
// Ignore constants
let unitVector = CGVector(dx: (x/vectorLength) * 25, dy: (y/vectorLength) * 50)

ball.physicsBody!.applyImpulse(unitVector)

现在我想要完成的是能够在该向量的方向上旋转精灵。

因此,例如,如果我的精灵向上移动并向左移动,比如45度角,我怎样才能使用矢量逆时针旋转精灵45度,使其看起来面向其行进的方向?

1 个答案:

答案 0 :(得分:3)

类似于sprite.zRotation = atan(unitVector.dy, unitVector.dx)