spritekit:粒子关键帧序列的麻烦

这应该是非常简单的。 我试图让我的粒子淡出使用关键帧序列..但是当我使用关键帧序列他们不淡出。 不知道我可能做错了什么。

粒子创build:

static func debris(size: Int) -> Array<SKEmitterNode> { if size > 5 { fatalError("we don't have that much debris") } var debrisArr: [SKEmitterNode] = [] for i in 1...size { let debris: SKEmitterNode = SKEmitterNode(fileNamed: "debris") debris.particleTexture = SKTexture(imageNamed: "debris\(i)") convertNumRef(&debris.particleScale) convertNumRef(&debris.particleScaleRange) debris.particleRotationSpeed = debris.particleRotationSpeed * CGFloat.randomSign() // THE PART WE CARE ABOUT debris.particleAlphaSequence = SKKeyframeSequence(keyframeValues: [0.5, 1.0, 0.0], times: [0.0, 3.0, 4.0]) debrisArr.append(debris) } 

在这里添加粒子到游戏场景

 func makeDebris(){ for debrisEmitter in self.debris { debrisEmitter.resetSimulation() debrisEmitter.position = self.position self.gameScene.gameLayer.addChild(debrisEmitter) debrisEmitter.runAction(SKAction.removeFromParentAfterDelay(10)) } } 

我也试过这个更简单的例子。

fire是默认的spritekit“火”粒子

 let fire = SKEmitterNode(fileNamed: "MyParticle") fire.particleColorSequence = SKKeyframeSequence(keyframeValues: [SKColor.blueColor(), SKColor.blueColor(), SKColor.yellowColor()], times: [0.0, 1.0, 2.0]) fire.position = CGPoint(x: self.size.width/2, y: self.size.height/2) self.addChild(fire) 

发射器只发射蓝色的粒子。 它只是select数组中的第一个颜色。 我肯定错过了什么。

好吧,我误解了。 时间不是几秒钟的时间。 他们是你的粒子寿命的一小部分

 debris.particleLifetime = 8 debris.particleAlphaSequence = SKKeyframeSequence(keyframeValues: [1.0, 1.0, 0.0], times: [0.0, 0.7, 1.0])