我是新雨燕
我收到此错误:'($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 */ )