6

我按顺序运行 3 个 SKAction,第一个两个运行得很好,但 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];
}
4

1 回答 1

18

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

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

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

于 2014-02-06T16:03:10.433 回答