我遇到了一个问题,即我在不同时间删除多个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?