首页 文章

具有Gravity False的SpriteKit节点倾斜到位

提问于
浏览
2

我正在 Build 一个菜单Game Scene,我有一个Logo和4个按钮,所有这些都有一个带有图像矩形大小的SKPhysicsBody . 所有这些我只设置:

logo.physicsBody = SKPhysicsBody(rectangleOf: logo.size)
logo.physicsBody?.affectedByGravity = false

创建对象的完整代码(都是相同的)

logo = SKSpriteNode(imageNamed: "logo")
logo.anchorPoint = CGPoint.zero
logo.name = "logo"
logo.zPosition = 2
logo.size = CGSize(width: 309, height: 272)
logo.setScale(Generic.utilities.getScale())
self.addChild(logo)
logo.position = CGPoint(x: self.frame.width/2 - logo.size.width/2, y: self.frame.height - logo.size.height - 40)
logo.physicsBody = SKPhysicsBody(rectangleOf: logo.size)
logo.physicsBody?.affectedByGravity = false

在按下按钮的过程中,我将所有受影响的节点更改为true,这样它们就会掉入屏幕并且可以进入新元素 .

我遇到的问题是,当我运行应用程序时,元素都在屏幕上移动/倾斜而不是在原始位置
Tilted Nodes

我想要的就是让他们保持原位,直到我点击其中一个按钮然后它们就会从屏幕上掉下来 .

任何理由为什么当我设置一个物理身体并且影响了他们时,他们都像这样倾斜?

1 回答

  • 1

    好吧,感谢@RonMyschuk和@ Knight0fDragon我发现(之前不知道)我可以添加到我的场景加载以下内容:

    skView.showsPhysics = true
    

    其中在您的节点的physicsBody周围添加边界线,这样您就可以看到它们相互作用 . 通过这样做,我看到我的一个节点的physicsBody完全处于不同的位置然后它应该

    Borderline around physicsBody

    通过处理这个问题,一切都恢复正常

相关问题