0

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

谢谢!

4

2 回答 2

3

好吧,您可以使用CCFadeOut删除当前图像,同时在不透明度为 0 的相同位置创建新精灵,并使用CCFadeIn. 如果你同时这样做,你应该会得到一个很好的效果。

于 2011-11-24T21:01:36.287 回答
0

您可以使用 2 个 CCSprite 淡化多个图像。

  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 的参数

交换精灵:

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];
于 2013-09-11T07:41:22.120 回答