我正在尝试使用Swift的SKsprite Particle Emitter。但我想在我的粒子发射器中使用不同的纹理。可以用Image创建一个Array并且随机出现Image吗? 谢谢
答案 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
子级,并根据需要将所有常用的发射器方法,操作和属性传播给子级...