我正在尝试将flashBackground的背景设为flash white。我怎么能用精灵工具包做到这一点。我创建了SKSpriteNode,我想从clearcolor到whitecolor闪烁到clearcolor。
flashBackground = [SKSpriteNode spriteNodeWithColor:[SKColor clearColor] size:
CGSizeMake(self.size.width, self.size.height)];
[self addChild:flashBackground];
答案 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;