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