出于某种原因,当我在这个场景中为这个SKSpriteNodes创建一个SKPhysicsBody时,物理实体显得比它们应该小得多。例如(请忽略蓝色链):
正如你所看到的,形状在它下面复制,但身体却高得多。此外,这似乎是一个视觉故障,因为我击中了一个更接近形状的“看不见的墙”。这是我用于形状的物理主体的代码:
self.outline.physicsBody = SKPhysicsBody(texture: self.outline.texture, size: self.outline.size)
self.outline.physicsBody?.dynamic = false
self.outline.physicsBody?.affectedByGravity = false
如果有人能够解释为什么会发生这种情况,那将非常感激。谢谢!
编辑:我在某处读到可能是因为我正在更改节点的锚点。当我删除它时,我得到了相同的形状,只是在节点上方。答案 0 :(得分:1)
我找到了对我有用的东西。我改变了:
self.outline.physicsBody = SKPhysicsBody(texture: self.outline.texture, size: self.outline.size)
到
self.outline.physicsBody = SKPhysicsBody(texture: self.outline.texture, size: self.outline.texture!.size())
采用纹理大小而不是节点本身的大小似乎有效。希望这有助于一些人!