Как удалить 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)
}
Спасибо за вашу помощь!