好的,所以我有一个精灵,假设被某物击中时会闪烁白色,我正在使用它
SKAction *changeColorAction =
[SKAction colorizeWithColor:[SKColor whiteColor] colorBlendFactor:1.0 duration:1];
发生的是精灵闪烁,但不是白色,而是变成透明的。如果我使用任何其他颜色,如 redColor、blueColor 等。它完美无缺。
我怎样才能让它真正变白?
谢谢你的帮助!!!:D
好的,所以我有一个精灵,假设被某物击中时会闪烁白色,我正在使用它
SKAction *changeColorAction =
[SKAction colorizeWithColor:[SKColor whiteColor] colorBlendFactor:1.0 duration:1];
发生的是精灵闪烁,但不是白色,而是变成透明的。如果我使用任何其他颜色,如 redColor、blueColor 等。它完美无缺。
我怎样才能让它真正变白?
谢谢你的帮助!!!:D
用白色着色应该为您提供图像的原始颜色。它实际上意味着“不着色”。您不能将其着色为“白色”。而是使用您准备的纹理,使图像看起来更亮。
尝试这个:
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)
}
非常感谢您提出 alpha 技巧。非常适合我正在寻找的东西。
您可以使用
run(SKAction.repeat(SKAction.sequence(changeColorAction,
waitAction,
changeBackAction,
waitAction), count: 4)