是否可以在小精灵上放置物理物体?我只希望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)
}