我如何制作五彩纸屑?
How do I make confetti?
我基本上想发射五彩纸屑颗粒。每个粒子都是相同的形状,但是,我希望每个粒子都是我指定的颜色选择中的随机颜色。
有没有办法让每个发射的粒子都具有随机颜色,或者我是否需要为每种粒子颜色使用单独的发射器?
您可以使用单个发射器来实现您想要的:
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate {
let emitter = SKEmitterNode(fileNamed: "particle")
let colors = [SKColor.whiteColor(),SKColor.grayColor(),SKColor.greenColor(),SKColor.redColor(),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])))
}
}
编辑:
尝试更改等待操作的持续时间以获得不同的结果。
您也可以使用色带(在粒子编辑器中)来达到同样的效果:
或者您可以使用 particleColorSequence and SKKeyframeSequence 来改变粒子在其生命周期内的颜色。希望这可以帮助。
仅供可能需要此问题答案的任何其他人使用。有一个框架叫做SAConfettiView
https://github.com/sudeepag/SAConfettiView。一定要检查一下!它对我有用。
我基本上想发射五彩纸屑颗粒。每个粒子都是相同的形状,但是,我希望每个粒子都是我指定的颜色选择中的随机颜色。
有没有办法让每个发射的粒子都具有随机颜色,或者我是否需要为每种粒子颜色使用单独的发射器?
您可以使用单个发射器来实现您想要的:
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate {
let emitter = SKEmitterNode(fileNamed: "particle")
let colors = [SKColor.whiteColor(),SKColor.grayColor(),SKColor.greenColor(),SKColor.redColor(),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])))
}
}
编辑:
尝试更改等待操作的持续时间以获得不同的结果。
您也可以使用色带(在粒子编辑器中)来达到同样的效果:
或者您可以使用 particleColorSequence and SKKeyframeSequence 来改变粒子在其生命周期内的颜色。希望这可以帮助。
仅供可能需要此问题答案的任何其他人使用。有一个框架叫做SAConfettiView
https://github.com/sudeepag/SAConfettiView。一定要检查一下!它对我有用。