在 SpriteKit 中禁用 SKNode 的旋转

Posted

技术标签:

【中文标题】在 SpriteKit 中禁用 SKNode 的旋转【英文标题】:Disable rotation of SKNode in SpriteKit 【发布时间】:2018-07-17 04:05:06 【问题描述】:

我有一个玩家,它的物理身体是一个圆圈。 可以把它想象成有一只像SKNode 那样飞扬的鸟,用一个圆圈作为物理体。现在每次我施加脉冲时,我都希望物理体旋转,但我不想让鸟旋转


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

【问题讨论】:

您是否将小鸟作为圆的子节点? 【参考方案1】:

您可以将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))]

【讨论】:

以上是关于在 SpriteKit 中禁用 SKNode 的旋转的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SpriteKit 中一次引用多个 SKNode?

Spritekit 无尽的跑步者父 SKNode

SpriteKit - 对在多个 SKNode 上运行的多个 SKAction 进行排序

子类化使用 SpriteKit .sks 场景文件创建的 SKNode

SpriteKit addChild(node: SKNode) 复数?

swift SpriteKit SKNode 类