Ios Swift SpriteKit';(15美元)——>$T16和x27;与';SKEmitterNode';
我是新来的斯威夫特 我得到了这个错误:Ios Swift SpriteKit';(15美元)——>$T16和x27;与';SKEmitterNode';,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我是新来的斯威夫特 我得到了这个错误:”($T15)->$T16”与“SKEmitterNode”不相同。 根据该代码: func didBeginContact(contact: SKPhysicsContact) { let untypedEmitter : AnyObject = NSKeyedUnarchiver.unarchiveObjectWithFile(NSBundle.mainBundle().pathForResource("Explosion", ofType: "
”($T15)->$T16”与“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})]))
SKAction.runBlock({ /* code in here */ })
请注意从emitter(runAction(…)
到emitter.runAction(…)
的更改
编辑
还请注意,没有向runBlock
传递任何块。应该是
emitter.runAction(SKAction.sequence([SKAction.waitForDuration(0.1), SKAction.runBlock({emitter.particleBirthRate = 0})]))
SKAction.runBlock({ /* code in here */ })
而不仅仅是
SKAction.runBlock( /* just code here wouldn't be inside of a block/closure */ )
它起作用了,但现在我发现一个新错误
无法找到并重载接受提供的参数的“waitForDuration”
,这是一个非常没有帮助的错误,因为问题出现在另一个操作(runBlock)中。我已经编辑了答案