SpriteKit粒子发射器多图像

时间:2016-03-03 10:16:07

标签: swift sprite-kit skemitternode

我正在尝试使用Swift的SKsprite Particle Emitter。但我想在我的粒子发射器中使用不同的纹理。可以用Image创建一个Array并且随机出现Image吗? 谢谢

1 个答案:

答案 0 :(得分:1)

假设您用一个纹理设计了发射器并将其保存为“ original.sks”,并且您有一个名为textures的纹理数组:

var emitters:[SKEmitterNode] = []
for t in textures {
    let emitter = SKEmitterNode(fileNamed: "original.sks")!
    emitter.particleTexture = t
    emitter.numParticlesToEmit /= CGFloat(emitters.count)
    emitter.particleBirthRate /= CGFloat(emitters.count)
    emitters.append(emitter)
}

现在您有了一个发射器阵列,而不是一个。无论您要如何使用发射器,只需使用数组即可:

// What you'd do with a single emitter:
addChild(someNormalEmitter)
someNormalEmitter.run(someAction)
...
    

// How to do the same with the array:
emitters.forEach {
    self.addChild($0)
    $0.run(someAction)
...
}

当然,您也可以继承SKEmitterNode的子类,以便它包含其他SKEmitterNode子级,并根据需要将所有常用的发射器方法,操作和属性传播给子级...