我是 Swift 新手
我得到这个错误:'($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( ... )
的变化。
另请注意,没有 block 传递给 runBlock
。应该是
SKAction.runBlock({ /* code in here */ })
不仅仅是
SKAction.runBlock( /* just code here wouldn't be inside of a block/closure */ )
关于ios - Swift SpriteKit '($T15) -> $T16' 与 'SKEmitterNode' 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669649/