将精灵旋转到矢量方向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将精灵旋转到矢量方向相关的知识,希望对你有一定的参考价值。

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

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

我只是通过向我的精灵应用一个归一化向量(单位向量?)脉冲来实现这一点,这是我从精灵和我的水龙头之间的位置差异得到的。

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度,使其看起来面向其行进的方向?

答案

sprite.zRotation = atan(unitVector.dy, unitVector.dx)这样的东西?

以上是关于将精灵旋转到矢量方向的主要内容,如果未能解决你的问题,请参考以下文章

片段着色器中的OpenGL点精灵旋转

我正在寻找一种在拖动方向上旋转精灵的方法

如何旋转精灵和移动

使用加速度计时的旋转装置

方向更改时,片段视图为空

如何在不锁定活动方向的情况下锁定片段方向?