0

これはかなり単純だと思いますが、SpriteKit でこの効果を実装する最善の方法に苦労しています。x 秒ごとにオフ/オンしたいレーザー ノードがあります。サウンドをオフにしてイメージをフェードアウトするように SKActions を設定しようとしましたが、SKAction で現在オフまたはオンになっている天候をノードに認識させる方法がわかりません。私が探しているのは、runAction の各 SKAction が完了するときの何らかのタイプのコールバックだと思います。そうすれば、レーザーがオンまたはオフであることを示すフラグを設定し、衝突が発生したときにそれを使用して、それを処理する方法を知ることができます. これが最善の方法であるかどうかもわかりません。ご協力いただきありがとうございます。

4

1 に答える 1

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
        ]];
于 2014-03-15T18:55:57.887 に答える