是否可以在小精灵上放置物理物体?我只希望Sprite节点的特定部分具有碰撞检测功能,而不是整个图像。

这是我的物理 body

physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: CGFloat(54.0), height: CGFloat(100.0)))

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

最佳答案

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

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)

}

10-04 22:24