SpriteKit每隔x秒关闭/打开节点,关闭时隐藏

时间:2014-03-15 17:11:42

标签: ios sprite-kit skaction sknode

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

1 个答案:

答案 0 :(得分:0)

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

    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
        ]];