ios - 使用 sprites velocity (swift) flappy bird 游戏旋转 Sprite

标签 ios swift sprite-kit angle skphysicsbody

所以我正在学习如何使用 Sprite 来构建 iOS 游戏。我正在重新制作 flappy bird 作为我的第一个项目。 我无法弄清楚如何正确工作的最后一段代码是鸟在空中落下时的旋转。

当我的鸟通过重力坠落时,它会俯冲下来,这很好。当我在点击屏幕时应用垂直脉冲时。这只鸟直接翻转 180 度,直接垂直看。这有点像我,但我如何平滑从 Nose 俯冲到垂直看的过渡?

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

这是我用来旋转小鸟的代码。

最佳答案

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)

关于ios - 使用 sprites velocity (swift) flappy bird 游戏旋转 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56431097/

相关文章:

ios - 无法使用 Cocoa Touch Framework 为项目创建存档

objective-c - 如何在函数中排除 iPad 2 和 iPod Touch 5th Generation?

ios - Swift - 如何从相机胶卷中获取视频并将其显示在 UICollectionView 中?

ios - 单击按钮会隐藏键盘,并且键盘弹起时不会执行操作

ios - 如何平铺 Sprite 节点的纹理?

ios - 从 Plist 转换 CGPoint

ios - 如何使用 swift 将 TouchsBegan 事件委托(delegate)给实体组件?

ios - 错误上传 TestFlight : Invalid IPA/dSYM not found

ios - 如何在两个带有参数的函数之间快速传递值或数据?

ios - 如何在选项卡栏按钮触摸上创建滑动菜单