ios - SKEmitterNode 从父节点移除后在屏幕上留下粒子
问题描述
在我的游戏中,我使用 SKEmitterNode 添加了一个粒子效果,该效果会播放几秒钟然后从游戏中删除。
但是,当移除时,这些颗粒会永久留在屏幕上。
这是添加和删除发射器的代码:
// debrisNode is a child of scene
let emitter = SKEmitterNode(fileNamed: "shatter.sks"),
emitter.name = debrisNode.name
emitter.targetNode = scene
debrisNode.addChild(emitter)
debrisNode.run(
.sequence([
.scale(to: 0.1, duration: 1),
.run {
emitter.particleBirthRate = 0
emitter.targetNode = nil
emitter.removeAllChildren()
emitter.removeFromParent()
}]))
编辑:我现在认为这与我使用targetNode
. 当我设置targetNode = debrisNode
时,粒子消失了——但我需要 targetNode 来使任何动画看起来正确。
解决方案
推荐阅读
- php - 在结帐期间登录时从购物车中删除持久性产品
- c# - nPoco - 使用嵌套数据获取单个对象
- javascript - 性能差异(map()、forEach()、for())
- c - 为什么可以在 C 中声明一个数组而不定义其长度?
- java - 以编程方式禁用 Ehcache 3.7 更新检查器?
- python - pandas 数据框中的 OBJECT to FLOAT
- javascript - 导出到 excel 时更改 dataTables 中的列标题
- amazon-web-services - 失效如何在 AWS DynamoDB DAX 多区域中工作
- javascript - 在区域标签位置放置一个元素
- python - 芹菜 泊坞窗中的坏幻数