我需要在屏幕上放置一些CCsprites
,稍后会淡入屏幕。
我无法隐藏它们,因为CCFade
操作不适用于隐藏精灵或带有opacity=0
的精灵。
我所做的就是将它们放在屏幕上并淡出它们:
[colors[i] runAction:[CCFadeOut actionWithDuration:0]];
[self addChild:colors[i] z:0];
事实证明,零时间淡出为not unseen
,所以当我将它们添加到CCScene.
时,它们会出现一秒
我如何将它们放在屏幕上看不见,而不是用CCFadeIn
动作淡出它们?
答案 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];
类似的事情。我想运行一个动画,它会在设定的延迟时间后出现,然后在完成后消失并清理。