在发出所有粒子后删除多个SKEmitterNode

时间:2017-01-13 09:05:29

标签: swift sprite-kit swift3 skaction skemitternode

我遇到了一个问题,即我在不同时间删除多个SKEmitterNode时遇到问题。每个SKEmitterNode都是通过迭代创建的,因此它们具有不同的删除时间(它们应该在它们发出所有指定粒子后删除)。这就是我目前所拥有的:

let explosionNode = SKEmitterNode(fileNamed: "Explosion.sks")
explosionNode?.position = missile.position
explosionNode?.numParticlesToEmit = 350
addChild(explosionNode!)
let nodesEmit = CGFloat((explosionNode?.numParticlesToEmit)!) / (explosionNode?.particleBirthRate)!
let seconds = nodesEmit + (explosionNode?.particleLifetime)! + (explosionNode?.particleLifetimeRange)! / 2
run(SKAction.sequence ([
    SKAction.run(removeExplosion(node: explosionNode!)),
        SKAction.wait(forDuration: TimeInterval(seconds)),
    ])
)

,功能是

func removeExplosion(node: SKEmitterNode) {
    node.removeFromParent()
    print("REMOVED")
}

但是,我收到一条错误,指出无法将类型'()'的值转换为预期的参数类型'() - >无效“。无论如何运行带有参数的SKAction还是有另一种方法在完成发射所有粒子后删除SKEmitterNodes?

0 个答案:

没有答案