如何删除SKEmitterNode并保持FPS?

时间:2016-10-08 02:46:59

标签: ios swift sprite-kit swift3 skemitternode

我有一个人留在屏幕上,直到他去世。当人移动时,挡块从他身上移开并使用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)

}

enter image description here

感谢您的帮助!

0 个答案:

没有答案