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

时间:2017-02-27 04:15:01

标签: swift sprite-kit skspritenode skphysicsbody

我正在建立一个菜单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 个答案:

答案 0 :(得分:1)

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

skView.showsPhysics = true

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

Borderline around physicsBody

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