2014-02-26 65 views
4

行,所以我有一個精靈被什麼東西擊中時這就是假設閃爍白色,我用這讓SKSpriteNode閃白SKAction colorizeWithColor

SKAction *changeColorAction = 
[SKAction colorizeWithColor:[SKColor whiteColor] colorBlendFactor:1.0 duration:1]; 

會發生什麼事是精靈閃光,但不是白色的,它變得透明。 如果我使用任何其他顏色,如redColor,blueColor等。它的作品完美。

我怎樣才能讓它變成白色?

Thanx的幫助! :D

回答

1

用白色着色應該給你圖像的原始顏色。它實際上意味着「不着色」。你不能將它着色爲「白色」。而是使用您準備好的圖像,使圖像看起來更明亮。

+0

感謝名單!是的,這就是我一直在讀的東西。啊。大聲笑:) – Xofear

+0

如果精靈動畫(例如走路),這並不會奏效。我認爲需要一個skeffectnode或着色器來將它設置爲白色。我認爲這將是非常簡單的着色器,但我沒有任何glsl着色器的技能。 –

0

試試這個:

func blink() { 

    inviolable = true 
    lifeCount-- 

    if lifeCount <= 0 { 

     lifeCount = 0 
    } 

    var changeColorAction: SKAction = SKAction.runBlock {() -> Void in 

     self.alpha = 0.5 
    } 

    var changeBackAction: SKAction = SKAction.runBlock {() -> Void in 

     self.alpha = 1.0 
    } 

    var waitAction: SKAction = SKAction.waitForDuration(0.2) 

    var finalAction: SKAction = SKAction.runBlock {() -> Void in 

     self.inviolable = false 
    } 

    var combined: SKAction = SKAction.sequence(
     [ changeColorAction, 
      waitAction, 
      changeBackAction, 
      waitAction, 
      changeColorAction, 
      waitAction, 
      changeBackAction, 
      waitAction, 
      changeColorAction, 
      waitAction, 
      changeBackAction, 
      changeColorAction, 
      waitAction, 
      changeBackAction, 
      changeColorAction, 
      waitAction, 
      changeBackAction, 
      finalAction]) 

    runAction(combined) 
} 
0

非常感謝你能想出阿爾法伎倆。非常適合我尋找的東西。

您可以使用

run(SKAction.repeat(SKAction.sequence(changeColorAction, 
      waitAction, 
      changeBackAction, 
      waitAction), count: 4)