【发布时间】:2015-02-03 19:35:40
【问题描述】:
当我的精灵与游戏中的另一个精灵发生碰撞时,我目前会显示粒子效果。
我有这段代码:
let sparkParticle = SKEmitterNode(fileNamed: "SparkParticle.sks")
if sparkParticle.parent == nil
{
sparkParticle.position = mySprite.position
self._particleLayer.addChild(sparkParticle)
}
sparkParticle.resetSimulation()
我创建的粒子的出生率为 1000 个,最多为 100 个。我将粒子发射器节点的位置设置为我的精灵当前在屏幕上的位置。然后,我将它添加为粒子层节点的子节点。
我的问题是,粒子发射器节点完成后是否必须手动从其父节点中移除?还是 Sprite Kit 播放完后会自动移除?
由于我的项目被设计为让精灵经常相互碰撞,我想确定是否仍需要手动处理以防止内存泄漏(粒子层有很多已完成的子发射器节点已经玩了)
【问题讨论】:
-
你必须自己删除它。
-
@hamobi 感谢您的评论。是否有在发射器节点播放完毕时触发的事件/方法,以便我可以检测何时删除它?
-
不,我不这么认为。我只是在一段时间后使用 SKAction 将其删除
标签: ios swift sprite-kit skemitternode