在CCSprite中淡出图像?

时间:2011-11-24 20:01:16

标签: ios animation cocos2d-iphone ccsprite

是否可以淡化CCSprite中的图像?目前我只知道它可以淡化Cocos2D中的对象,但我不确定这是否可行。 有没有办法做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:3)

好吧,您可以使用CCFadeOut删除当前图片,同时在不透明度为0的相同位置创建新精灵,然后使用CCFadeIn淡入淡出。如果你同时这样做,你应该会有一个很好的效果。

答案 1 :(得分:0)

您可以通过多个图像淡化2个CCSprites。

  1. CCSprite A对前端zOrder 1不透明
  2. CCSprite B为透明(如果CCSprite A覆盖CCSprite B则不需要),zOrder 0
  3. FadeOut CCSprite A然后把它放在后台,zOrder 0
  4. CCSprite B zOrder 1在前面,在第2点之后可以看到
  5. 将CCSprite A的图像交换为每个不均匀的
  6. 重复所有内容,这次以相反的顺序给出CCSprite A和B的参数
  7. 交换精灵:

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

    根据需要添加延迟:

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

    重复一遍:

    CCSequence *exchangeSequence = [CCSequence actions:exchangeImage, delayAction, nil];
    CCRepeatForever *repeat = [CCRepeatForever actionWithAction:exchangeSequence];
    [self runAction:repeat];