SKPhysicsBody 未与 SKShapeNode 对齐

Posted

技术标签:

【中文标题】SKPhysicsBody 未与 SKShapeNode 对齐【英文标题】:SKPhysicsBody not lining up with SKShapeNode 【发布时间】:2015-12-03 18:26:57 【问题描述】:

我有一个这样创建的圆形节点:

 let path = CGPathCreateWithEllipseInRect(CGRect(x: 0, y: 150, width: playerWidth, height: playerHeight), nil)
    self.path = path


    fillColor = UIColor.whiteColor()

每当我添加一个physicsBody (circleOfRadius: CGFloat) 时,它都会拒绝与节点的位置匹配,并最终出现在模拟器屏幕的左下角附近。

有没有办法改变物理体的位置?如有必要,将发布更多代码。

【问题讨论】:

【参考方案1】:

如果你想移动物理身体,不要设置形状的身体。创建一个附加到形状的 SKNode,然后设置 SKNode 的physicsBody。要移动身体,请调整您在形状上创建的 SKNode 的位置。

 let shape = SKShapeNode(initialize here)
 let bodyNode = SKNode()
 shape.addChild(bodyNode)
 bodyNode.physicsBody = SKPhysicsBody(initialize here)

 // To move the body;
 bodyNode.position = CGPoint(point you wish)

【讨论】:

以上是关于SKPhysicsBody 未与 SKShapeNode 对齐的主要内容,如果未能解决你的问题,请参考以下文章

iOS -- SpriteKit框架之SKPhysicsBody的移动和连接

SpriteKit:SKPhysicsBody 溜走

将精灵附加到 SKPhysicsBody

SKSpriteNode 卡在 init(edgeLoopF​​rom:) - SKPhysicsBody

为啥 SKPhysicsBody -bodyWithEdgeLoopF​​romRect 不对碰撞做出反应?

SKPhysicsBody 不如预期