从父级移除后,SKEmitterNode将粒子留在屏幕上

时间:2018-12-07 03:20:30

标签: ios swift sprite-kit skemitternode

在我的游戏中,我使用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来使任何动画看起来正确。

0 个答案:

没有答案