Как удалить SKEmitterNode и поддерживать FPS?

У меня есть человек, который остается на экране, пока он не умрет. Когда человек движется, блоки отрываются от него и исчезают в воздухе, используя SKEmitterNode, Чем дольше я играю, тем ниже FPS, и моя игра начинает работать медленнее, обычно около 1000 узлов, она замедляется.

Я знаю, что мне нужно найти способ удалить узлы, которые уже исчезли, и я попробовал базовые вещи, чтобы удалить узлы, но безуспешно.

Меня также смущает, почему моя игра так сильно тормозит около 1000 - 1500 узлов, когда есть игры с HD-графикой с частицами пыли и миллионами разных происходящих одновременно вещей, которые работают гладко?

Здесь SKEmitterNode :

func gravityTrail(_ spriteToExplode : SKSpriteNode, color : UIColor) {

    gravityTrail = SKEmitterNode(fileNamed: "TrailGravity.sks")
    gravityTrail.particleColorSequence = nil
    gravityTrail.particleColorBlendFactor = 1.0
    gravityTrail.particleColor = color

    gravityTrail.targetNode = person

    gravityTrail.position = spriteToExplode.position

    self.addChild(gravityTrail)

}

введите описание изображения здесь

Спасибо за вашу помощь!

0 ответов

Другие вопросы по тегам