是否可以将物理体仅定位到 Sprite 的一部分?

Rac*_*ans 4 ios sprite-kit skphysicsbody swift

是否可以在精灵上放置物理体?我只希望精灵节点的某个部分进行碰撞检测,而不是整个图像。

这是我的物理身体

physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: CGFloat(54.0), height: CGFloat(100.0)))
Run Code Online (Sandbox Code Playgroud)

但我想将物理体放置在节点的顶部,它通常被放置在节点的中间。

rak*_*hbs 5

您可以尝试创建一个SKSpriteNode与 相同尺寸的较小的SKPhysicsBody,并将较大的SKSpriteNode作为孩子添加到较小的。根据需要更改较大的位置。例如

override func didMoveToView(view: SKView) {

    let smallerSprite = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(30, 30))
    smallerSprite.physicsBody = SKPhysicsBody(rectangleOfSize: smallerSprite.size)
    smallerSprite.position = CGPointMake(100, 400)
    self.addChild(smallerSprite)

    let largerSprite = SKSpriteNode(color: UIColor(white: 0.5, alpha: 0.5), size: CGSizeMake(100, 100))
    largerSprite.position = CGPointMake(-10, -10)
    smallerSprite.addChild(largerSprite)

    self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)

}
Run Code Online (Sandbox Code Playgroud)