通过使用精灵速度(快速)飞扬的小鸟游戏来旋转精灵

时间:2019-06-03 16:16:58

标签: ios swift sprite-kit angle skphysicsbody

因此,我正在学习如何使用精灵来构建iOS游戏。我正在重新制作飞扬的鸟,这是我的第一个项目。 我无法弄清楚如何正确地工作的最后一部分代码是鸟从空中掉下来时的旋转。

当我的鸟因重力而下落时,鼻子会向下俯冲,这很好。当我点击屏幕上的垂直脉冲时。这只鸟直接向后翻转180,看起来直接垂直。这是我的本领,但如何使从鼻子俯冲到垂直看的过渡变得平滑?

bird.physicsBody?.allowsRotation = true
var velocityvector = bird.physicsBody?.velocity
let angle = atan2(velocityvector?.dy ?? 0, velocityvector?.dx ?? 0)
bird.zRotation = angle

这是我制作的旋转鸟的代码。

1 个答案:

答案 0 :(得分:3)

bird.physicsBody?.allowsRotation = true 
var velocityvector = bird.physicsBody?.velocity
let angle = atan2(velocityvector?.dy ?? 0, velocityvector?.dx ?? 0)
let rotateAction = SKAction.rotate(byAngle: angle, duration: 0.5)
// Or let rotateAction = SKAction.rotate(toAngle: angle, duration: 0.5)
bird.run(rotateAction)