4

好的,所以我有一个精灵,假设被某物击中时会闪烁白色,我正在使用它

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

发生的是精灵闪烁,但不是白色,而是变成透明的。如果我使用任何其他颜色,如 redColor、blueColor 等。它完美无缺。

我怎样才能让它真正变白?

谢谢你的帮助!!!:D

4

3 回答 3

1

用白色着色应该为您提供图像的原始颜色。它实际上意味着“不着色”。您不能将其着色为“白色”。而是使用您准备的纹理,使图像看起来更亮。

于 2014-02-26T08:21:38.283 回答
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)
}
于 2014-11-04T17:46:52.443 回答
0

非常感谢您提出 alpha 技巧。非常适合我正在寻找的东西。

您可以使用

run(SKAction.repeat(SKAction.sequence(changeColorAction,
            waitAction,
            changeBackAction,
            waitAction), count: 4) 
于 2017-03-16T08:08:56.920 回答