SpriteKit粒子发射器多图像

gab*_*lpf 5 sprite-kit skemitternode swift

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

小智 1

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

\n
var emitters:[SKEmitterNode] = []\nfor t in textures {\n    let emitter = SKEmitterNode(fileNamed: "original.sks")!\n    emitter.particleTexture = t\n    emitter.numParticlesToEmit /= CGFloat(emitters.count)\n    emitter.particleBirthRate /= CGFloat(emitters.count)\n    emitters.append(emitter)\n}\n
Run Code Online (Sandbox Code Playgroud)\n

现在您拥有一组发射器而不是单个发射器。无论您想对发射器做什么,只需使用数组即可:

\n
// What you'd do with a single emitter:\naddChild(someNormalEmitter)\nsomeNormalEmitter.run(someAction)\n...\n    \n\n// How to do the same with the array:\nemitters.forEach {\n    self.addChild($0)\n    $0.run(someAction)\n...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

当然,您也可以子类化,SKEmitterNode以便它包含其他SKEmitterNode子级,并将所有常用的发射器方法、操作和属性传播到 Children\xe2\x80\xa6,具体取决于您的需要。

\n