В настоящее время я отображаю эффекты частиц, когда мой спрайт сталкивается с другим спрайтом в игре.
У меня есть этот фрагмент кода:
let sparkParticle = SKEmitterNode(fileNamed: "SparkParticle.sks")
if sparkParticle.parent == nil
{
sparkParticle.position = mySprite.position
self._particleLayer.addChild(sparkParticle)
}
sparkParticle.resetSimulation()
Созданная мною частица имеет скорость рождения 1000 частиц с максимальным значением 100. Я установил положение узла эмиттера частиц там, где мой спрайт в данный момент находится на экране. Затем я добавляю его как дочерний элемент узла слоя частиц.
Мой вопрос: нужно ли вручную удалять узел эмиттера частиц из его родителя после его завершения? Или Sprite Kit автоматически удаляет его после завершения воспроизведения?
Поскольку мой проект предназначен для того, чтобы спрайты часто сталкивались друг с другом, я хочу убедиться, что мне все еще нужно обрабатывать это вручную, чтобы предотвратить утечку памяти (у слоя частиц есть много дочерних узлов-эмиттеров, которые уже закончили играть)