Skspritenode不会使用序列Sprite套件的Skaction逐渐消失



im以序列运行3个skactions,第一两个运行良好,但是fadeinwithDuration不会在节点中褪色,当视图加载时,节点立即添加。我是否必须将节点的初始alpha通道设置为0?有人可以帮助解决问题吗?

- (void)setUpButtonStart
{
    SKSpriteNode *buttonStart = [SKSpriteNode spriteNodeWithImageNamed:@"start"];
    buttonStart.name = @"buttonStart";
    buttonStart.position = CGPointMake(900,50);
    [self addChild:buttonStart];
    SKAction *wait = [SKAction waitForDuration:2.5];
    SKAction *readIntro = [SKAction playSoundFileNamed:@"intro.mp3" waitForCompletion:NO];
    SKAction *fadeIn = [SKAction fadeInWithDuration:1.0];
    SKAction *sequence = [SKAction sequence:@[wait, readIntro, fadeIn]];
    [buttonStart runAction: sequence];
}

如文档中所述, fadeInWithDuration操作将节点的 alpha属性从其当前值更改为1.0(100%不透明度)。

这就是为什么您没有看到淡入淡出的原因 - 您的操作实际上不会做任何事情,因为节点的默认alpha值为1.0,它将从100%增加到100%。

正如Steffen在他的评论中所建议的那样,您需要做的就是在执行操作之前设置buttonStart.alpha = 0.0

最新更新