0

我确信这相当简单,但我一直在努力寻找在 SpriteKit 中实现这种效果的最佳方法。我有一个激光节点,我想每隔 x # 秒关闭和打开它。我尝试设置 SKActions 来关闭声音并淡出图像,但我不确定如何让节点知道它在 SKAction 中当前关闭或打开的天气。我想当我的 runAction 中的每个 SKAction 完成时,我正在寻找的是某种类型的回调。这样我就可以设置一个标志来说明激光是打开还是关闭,并在发生碰撞时使用它,这样我就知道如何处理它。我也不确定这是否是解决此问题的最佳方法。谢谢你的帮助。

4

1 回答 1

0

对于任何感兴趣的人来说,我所缺少的是 runBlocks。ruNBlacks 是触发一段代码的 SKAction。我在激光打开之前和关闭之前添加了运行块,以便它可以更新其状态。看起来这会很好用!

    SKAction *soundAction = [SKAction playSoundFileNamed:@"Laser.m4a" waitForCompletion:NO];
    SKAction *fadeInAction = [SKAction fadeInWithDuration: .5];
    SKAction *firstWaitAction = [SKAction waitForDuration:1.5];
    SKAction *fadeOutAction = [SKAction fadeOutWithDuration: .5];
    SKAction *secondWait1Action = [SKAction waitForDuration:2];

    SKAction *laserAnimAction = [SKAction sequence:@[
        [SKAction runBlock:^
        {
            self.isOn=YES;
        }],
        soundAction,
        fadeInAction,
        firstWaitAction,
        [SKAction runBlock:^
        {
            self.isOn=NO;
        }], fadeOutAction,
        secondWaitAction
        ]];
于 2014-03-15T18:55:57.887 回答