ios - 为什么粒子系统只工作一次?

标签 ios swift sprite-kit particle-system

我正在使用针对 iOS 9.3 的 SpriteKit/Swift 2.2 开发类似爆炸的粒子系统,如 this video tutorial 中所述。 .

我的(简化的)代码:

let emiExplode = SKEmitterNode(fileNamed: "ExplosionParticleSystem.sks")

private func initEmitters() {
    emiExplode?.particleBirthRate = 0.0
    emiExplode?.targetNode = scene
    emiExplode?.zPosition = 1
    scene.addChild(emiExplode!)
}

private func explode() {
    emiExplode?.position = self.position
    emiExplode?.particleBirthRate = 2000.0
    // remove explosion particle system shortly after
    let action = SKAction.sequence([SKAction.waitForDuration(1.5),
                                    SKAction.runBlock( { self.emiExplode?.particleBirthRate = 0 })])
     emiExplode?.runAction(action)
}

我第一次调用 explode() 时,它就像一个魅力。但是第二次,粒子效果不可见...

有什么想法吗?

最佳答案

同时我找到了解决方案:

self.emiExplode?.resetSimulation()

...成功了。

关于ios - 为什么粒子系统只工作一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085146/

相关文章:

ios - 为什么我在 iOS 6 中切换 tabBar Items 数组时出现黑屏?

swift - 有什么方法可以将 Double 转换为 NSNumber 并在 Swift 中将精度保持在至少小数点后 6 位?

swift - 删除表中一行的操作问题

swift - 如果 TouchLocation 不在范围内

javascript - react native : Cannot read property 'push' of undefined - Have NavigatorIOS and ES6 bind(this)

ios - 根据 UIPanGestureRecognizer 翻译值更改 UIImageView 中的图像

ios - UIAlertController 的后续演示出现卡顿

ios - 加载 View 时从搜索 Controller 中移除焦点

ios - 如何让两个相同的 UISwipeGestureRecognizers 根据触摸位置同时工作?

swift - 如何减小每个圆象限的大小以产生间隙