在 SpriteKit 中禁用 SKNode 的旋转

Disable rotation of SKNode in SpriteKit

我有一个播放器,所以物理 body 是一个圆圈。 把它想象成一只飞扬的鸟 SKNode 和一个圆圈作为物理学 body。现在每次我施加一个冲动时,我都希望物理 body 旋转,但我不想让鸟旋转


我正在使用 physicsbody.allowrotation = true 但这也会旋转节点(鸟)。我希望鸟不旋转,但物理 body 应该旋转。

您或许可以将 SKConstraint 添加到您的 SKSpriteNode 限制旋转中。

let birdSprite = SKSpriteNode(imageNamed: "bird.png")
birdSprite.physicsBody = SKPhysicsBody(circleOfRadius: max(birdSprite.size.width / 2, birdSprite.size.height / 2))
birdSprite.physicsBody.allowsRotation =  true
birdSprite.constraints = [SKConstraint.zRotation(SKRange(lowerLimit:0 upperLimit:0))]