2014-04-29 2 views
0

나는 flashBackground 플래시 배경을 흰색으로 만들려고합니다. 스프라이트 키트를 사용하여 어떻게하면됩니까? 나는 clearcolor에서 whitecolor로 clearcolor로 플래시하고 싶습니다 아래 SKSpriteNode를 만들었습니다.backgorund 컬러 플래시 스프라이트 키트

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

[self addChild:flashBackground]; 

답변

-1

나는 흰색 노드를 사용하고 알파를 움직이게 하겠지만, 이는 개인적인 취향이며 전혀 영향을주지 않을 것입니다.

노드의 색상을 애니메이트하려면 [SKAction colorizeWithColor : colorBlendFactor : duration :] 메서드를 사용하십시오.

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

이의 알파 기반 버전 그냥 whiteColor로 설정 초기 색상으로 시작 것, flashBackground.alpha 0으로 설정하고 실행합니다 : 귀하의 경우에는, 그 같을 것이다

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

원하는 효과를 얻을 때까지 지속 시간을 조정하십시오.

노드의 블렌드 모드를 변경하여 추가하거나 곱하면보다 사실적인 깜박임 효과를 얻을 수 있습니다.

flashBackground.blendMode = SKBlendModeAdd; 
+0

내가 다른 블렌드 모드는 도면 계층에 clearColor 혼합 처리 얼마나 아무 생각합니다. 시도해도 결과를 공유하십시오! – webbcode

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]]];