我是新雨燕

我收到此错误:'($T15) -> $T16' is not identical to 'SKEmitterNode'
从此代码:

func didBeginContact(contact: SKPhysicsContact) {
    let untypedEmitter : AnyObject = NSKeyedUnarchiver.unarchiveObjectWithFile(NSBundle.mainBundle().pathForResource("Explosion", ofType: "sks")!)!
    let emitter:SKEmitterNode = untypedEmitter as SKEmitterNode
    emitter.position = Player.position

    self.addChild(emitter)
    emitter(runAction(SKAction.sequence([SKAction.waitForDuration(0.1), SKAction.runBlock(emitter.particleBirthRate = 0)])))
}

错误在最后一行

屏幕截图:

我正在运行XCode 6.2版

谢谢

最佳答案

您使用错误的语法在节点上调用runAction方法。它应该是

emitter.runAction(SKAction.sequence([SKAction.waitForDuration(0.1), SKAction.runBlock({emitter.particleBirthRate = 0})]))

注意从emitter(runAction( ... ))emitter.runAction( ... )的更改。

编辑

还要注意,没有块传递给runBlock。它应该是
SKAction.runBlock({ /* code in here */ })

而不只是
SKAction.runBlock( /* just code here wouldn't be inside of a block/closure */ )

10-08 07:23