将精灵隐藏在屏幕上,而不是将它们淡入

时间:2013-01-31 09:44:12

标签: cocos2d-iphone

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

你可以使用sprite.opacity = 0;原来 在操作中你可以增加不透明度

答案 1 :(得分: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];

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