¿Cómo hago el confeti?

Básicamente quiero emitir partículas de confeti. Cada partícula tiene la misma forma, sin embargo, quiero que cada partícula sea un color aleatorio de una selección de colors que especifique.

¿Hay una forma para que cada partícula emitida tenga un color aleatorio o necesito un emisor separado para cada color de partícula?

Puede usar un solo emisor para lograr lo que desea:

import SpriteKit class GameScene: SKScene, SKPhysicsContactDelegate { let emitter = SKEmitterNode(fileNamed: "particle") let colors = [SKColor.whiteColor(),SKColor.grayColor(),SKColor.greenColor(),SKColor.networkingColor(),SKColor.blackColor()] override func didMoveToView(view: SKView) { self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame) emitter.position = CGPoint(x: 200, y:300) emitter.particleColorSequence = nil emitter.particleColorBlendFactor = 1.0 self.addChild(emitter) let action = SKAction.runBlock({ [unowned self] in let random = Int(arc4random_uniform(UInt32(self.colors.count))) self.emitter.particleColor = self.colors[random]; println(random) }) let wait = SKAction.waitForDuration(0.1) self.runAction(SKAction.repeatActionForever( SKAction.sequence([action,wait]))) } } 

EDITAR:

Intente cambiar la duración de la acción de espera para get resultados diferentes.

También puedes jugar con la rampa de color (en el editor de partículas) para lograr el mismo efecto:

introduzca la descripción de la imagen aquí

O puede usar particleColorSequence y SKKeyframeSequence para cambiar el color de las partículas a lo largo de su vida. Espero que esto ayude.

Solo para cualquier otra persona que quiera una respuesta a esto. Hay un marco llamado SAConfettiView https://github.com/sudeepag/SAConfettiView . Definitivamente echa un vistazo! Funcionó para mí.