我的一个精灵"physicsBody“属性一直有问题。
我已经将physicsBody节点"barn“直接放在non-physicsBody节点"mound”的顶部,没有任何问题。它在模拟器上看起来很好,但是我的节点"hero“总是碰到一个看不见的障碍,当我删除"barn”时,这个障碍就不再是问题了(所以这一定是“barn”的问题)。barn的physicsBody元素似乎比实际纹理向y下扩展得更远。也就是说,physicsBody和纹理似乎在两个不同的地方,尽管我的physicsBody的参数由纹理组成:
let barn = SKSpriteNode(texture: barn.texture, size: barn.size)
barn.physicsBody?.dynamic = false
barn.physicsBody?.pinned = true
barn.physicsBody?.affectedByGravity = false
barn.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMinY + mound.size.height / 2)正如您在下图中所看到的,当我对"hero“节点(位于底部棕褐色条顶部的黑色圆圈)施加脉冲时,它会被某种看不见的节点阻止:
http://imgur.com/gallery/ATb6jgf/new
如果我继续施加一个脉冲,它就会上升到节点中,遵循同样的形状模式,但就好像它刚刚下降了大约50个像素:
http://imgur.com/gallery/rpyF3DK/new
如果我向y-value添加一个150像素的空间,如下所示:
barn.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMinY(self.frame) + mound.size.height / 2 + 150)然后,"hero“节点就可以按照它应该的方式正确移动:
http://imgur.com/Rbkarss
因此,我们可以推断的是,尽管纹理被正确地放置在土丘的顶部,但physicsbody似乎是沿着y-axis下降的。我刚接触swift,有人能理解这一点吗?谢谢。
发布于 2015-07-19 02:17:03
对于其他有问题的人,我发现问题出在我的anchorPoint上。
anchorPoint只适用于节点本身,而不适用于“physicsBody”。
https://stackoverflow.com/questions/31485726
复制相似问题