0

我需要CCsprites在屏幕上放一些稍后会淡入屏幕的内容。我无法隐藏它们,因为该CCFade动作不适用于隐藏的精灵或带有 的精灵opacity=0

我所做的是将它们放在屏幕上并淡出它们:

[colors[i] runAction:[CCFadeOut actionWithDuration:0]];
[self addChild:colors[i] z:0];

事实证明,在零时间淡出是not unseen,所以当我将它们添加到的那一刻,它们会出现一秒钟CCScene.

我如何将它们放在屏幕上不被看到,而不是用CCFadeIn动作淡化它们?

4

2 回答 2

0

你可以使用 sprite.opacity =0; 最初和在行动中,您可以增加不透明度

于 2013-01-31T10:03:01.397 回答
0

您可以使用序列来堆叠操作。请参阅我的一个项目中的以下示例:

CCSprite *frame1 = [CCSprite spriteWithSpriteFrame:[frames objectAtIndex:0]];
frame1.flipX = self.flipX;
frame1.scale = self.scaling;
frame1.visible = NO;
frame1.opacity = 255;
frame1.rotation = self.rotation;
frame1.position = self.offset;
animation = [CCAnimation animationWithSpriteFrames:frames delay:(duration / self.numberOfFrames)];
id stall = [CCDelayTime actionWithDuration:delay];
id show = [CCShow action];
id animate = [CCAnimate actionWithAnimation:animation];
id hide = [CCHide action];
id clean = [CCCallBlock actionWithBlock:^{
    [frame1 removeFromParentAndCleanup:YES];

}];
id enchiladas = [CCSequence actions:stall, show, animate, hide, clean, nil];

[node addChild:frame1 z:5];
[frame1 runAction:enchiladas];

类似的事情。我想运行一个动画,该动画将在设定的延迟时间后出现,然后在完成后自行消失并清理。

于 2013-01-31T10:48:23.123 回答