2011-11-24 4 views
0

CCSprite에서 이미지를 페이드 아웃 할 수 있습니까? 현재 나는 Cocos2D에서 객체를 페이드하는 것이 가능하다는 것을 알고 있습니다 만, 이것이 가능한지 확실하지 않았습니다. 이렇게 할 방법이 있습니까?CCSprite에서 이미지가 흐려 지나요?

감사합니다.

+0

"페이드"일반적으로 투명도를 변경하는 것을 의미한다 이미지의 뭔가 이것이 당신이 의미하는 바가 아니라는 것을 말해줍니다. 좀 더 자세히 설명해 주시겠습니까? – LearnCocos2D

+0

흠, CCSprite에서 이미지를 즉시 변경하지 않고 이미지를 통해 변경 사항을 애니메이션으로 처리하려고합니다. 나는 용어 ​​변환이 여기에서 작동한다고 생각한다 : P –

+0

또한 아래의 응답자가 나를 위해 100 % 더 힘들게 만드는 여러 스프라이트를 사용하기를 원하기 때문에 하나의 CCSprite로이 작업을 수행하고 싶다. –

답변

3

글쎄, CCFadeOut을 사용하면 현재 이미지를 지우는 동시에 불투명도가 0 인 동일한 위치에 새로운 스프라이트를 만들고 CCFadeIn으로 페이드 인 할 수 있습니다. 당신이 그것을 동시에하면, 당신은 좋은 효과를 얻어야한다.

+0

하나의 스프라이트로 어떻게이 효과를 얻을 수 있습니까? –

+0

어쨌든 하나만 있다면 "이미지를 통해 사라질"것이라고 어떻게 예상합니까? – Voldemort

+0

그게 내가 조언이 필요한 이유인지 모르겠다 : P 가능해야합니다! –

0

여러 개의 이미지를 통해 2 개의 CCSprite로 페이드 아웃 할 수 있습니다. 전면 zOrder를 투명한 1

  • CCSprite의 B (CCSprite A가 CCSprite B를 덮는 경우이 필요하지 않은) zOrder를 0
  • 페이드 아웃 CCSprite (A)에 그리고 그 넣어 후 불투명

    1. CCSprite A를 백그라운드에서 앞의 zOrder를 0
    2. CCSprite B zOrder를 1, 2
    3. 모든 고르지
    4. 반복 모든 것에 CCSprite A의
    5. 교환 이미지, 이번에는 CCSprite A와 B의 인수를 줄 시점 이후 볼 수 있습니다 반대쪽 또는 필요한 경우

      CCCallBlock *exchangeImage = [CCCallBlock actionWithBlock:^{ 
          sprite.texture = [[CCTextureCache sharedTextureCache] addImage:@"image.png"]; 
      }]; 
      

      추가 지연 :

    의 Exchange 스프라이트 데르 함께 반복을 넣어

    CCDelayTime *delayAction = [[CCDelayTime alloc] initWithDuration:0.4f]; 
    

    :

    이 가
    CCSequence *exchangeSequence = [CCSequence actions:exchangeImage, delayAction, nil]; 
    CCRepeatForever *repeat = [CCRepeatForever actionWithAction:exchangeSequence]; 
    [self runAction:repeat]; 
    
  • 관련 문제