SKPhysicsBody"额外的论点'尺寸'在电话"

时间:2015-03-09 13:47:42

标签: swift size skphysicsbody

我想要达到的目的是使对象(物理体)的形状与纹理完全一致,以便将来只能点击纹理(而不是透明层)。

    let fireLayer = SKSpriteNode(imageNamed: fireImage)
    fireLayer.anchorPoint = CGPointMake(1, 0)
    fireLayer.position = CGPointMake(size.width, 0)
    fireLayer.zPosition = Layer.Z4st

    var firedown = SKAction.moveToY(-200, duration: 0)
    var fireup1 = SKAction.moveToY(10, duration: 1.2)
    var fireup2 = SKAction.moveToY(0, duration: 0.2)

在这里,我试图创造一个身体,以及#34;切断"来自节点的所需对象。

    fireLayer.physicsBody = SKPhysicsBody(texture: fireLayer, size: fireLayer.texture!.size())

现在,我在这里得到一个错误"额外的争论' size'在电话" ...虽然SKPhysicalBody有两个参数:纹理和大小。

    fireLayer.name = "fireNode"

    fireLayer.runAction(SKAction.sequence([firedown, wait1, fireup1, fireup2]))

    addChild(fireLayer)

我做错了什么? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

此错误具有误导性。您的问题实际上是第一个参数texture: fireLayer。您需要设置SKTexture而不是SKSpriteNode

此外,您应该更改初始化SKSpriteNode并添加SKTexture的方式:

let fireLayerTexture = SKTexture(imageNamed: fireImage)

而不是:

let fireLayer = SKSpriteNode(texture: fireLayerTexture)

在你做完之后,你可以像这样初始化SKPhysicsBody

fireLayer.physicsBody = SKPhysicsBody(texture: fireLayerTexture, size: fireLayer.texture!.size())