背景颜色flash spritekit

时间:2014-04-29 21:48:43

标签: ios objective-c sprite-kit

我正在尝试将flashBackground的背景设为flash white。我怎么能用精灵工具包做到这一点。我创建了SKSpriteNode,我想从clearcolor到whitecolor闪烁到clearcolor。

flashBackground = [SKSpriteNode spriteNodeWithColor:[SKColor clearColor] size:
                       CGSizeMake(self.size.width, self.size.height)];

[self addChild:flashBackground];

2 个答案:

答案 0 :(得分:2)

SKAction *wait0 = [SKAction waitForDuration:1.0]; // 1 sec delay

SKAction *block0 = [SKAction runBlock:^{
    flashBackground.color = [SKColor whiteColor];
}];

SKAction *block1 = [SKAction runBlock:^{
    flashBackground.color = [SKColor clearColor];
}];

[flashBackground runAction:[SKAction repeatActionForever:[SKAction sequence:@[wait0, block0, wait0, block1]]]];

或仅将最后一行更改为:

[flashBackground runAction:[SKAction sequence:@[wait0, block0, wait0, block1]]];

答案 1 :(得分:-1)

我可能只是使用一个白色节点并为其制作动画“alpha”,但这样的个人偏好可能根本不会影响任何事情。

要为节点的颜色设置动画,请使用[SKAction colorizeWithColor:colorBlendFactor:duration:]方法。在您的情况下,这将是这样的:

 [flashBackground runAction:[SKAction sequence:@[[SKAction colorizeWithColor:[SKColor whiteColor] colorBlendFactor:1 duration:.1],[SKAction colorizeWithColor:[SKColor clearColor] colorBlendFactor:1 duration:.1]]]];

基于alpha的版本只需将初始颜色设置为whiteColor,flashBackground.alpha设置为0,然后运行:

 [flashBackground runAction:[SKAction sequence:@[[SKAction fadeInWithDuration:.1],[SKAction fadeOutWithDuration:.1]]]];

调整持续时间,直到获得所需的效果。

您还可以尝试更改节点的混合模式以添加或相乘,以获得更逼真的闪烁效果。

flashBackground.blendMode = SKBlendModeAdd;