2014-12-15 3 views
0

정말 간단합니다. 내 입자가 키 프레임 시퀀스를 사용하여 희미 해 지도록 노력하고 있습니다. 그러나 키 프레임 시퀀스를 사용하면 전혀 사라지지 않습니다. 내가 뭘 잘못하고 있는지 모르겠다.spritekit : 파티클 키 프레임 시퀀스 문제

입자 생성 :

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)) 
    } 
} 

여기 장면을 게임에 추가.

화재는 기본 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) 

에미는 파란색 입자를 방출이다. 배열의 첫 번째 색상을 선택합니다. 나는 뭔가를 놓치고 있어야합니다.

답변

3

오케이 내가 오해했다. 시간 arent 시간에 초. 입자 수명의 일부분입니다.

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

고마워요. SpriteKit 문서는 많은 것을 남겨두고 있습니다. – Jonny