在我的游戏中,我使用SKEmitterNode添加了一种粒子效果,该效果会播放几秒钟,然后从游戏中删除。
但是,将其删除后,粒子将永久留在屏幕上。
这是添加和删除发射器的代码:
// debrisNode is a child of scene
let emitter = SKEmitterNode(fileNamed: "shatter.sks"),
emitter.name = debrisNode.name
emitter.targetNode = scene
debrisNode.addChild(emitter)
debrisNode.run(
.sequence([
.scale(to: 0.1, duration: 1),
.run {
emitter.particleBirthRate = 0
emitter.targetNode = nil
emitter.removeAllChildren()
emitter.removeFromParent()
}]))
编辑:我现在认为这与我对targetNode
的使用有关。当我设置targetNode = debrisNode
时,粒子消失了-但是我需要targetNode来使任何动画看起来正确。