2016-04-11 42 views
1

いただきました!これで間違って実行していませんか?スウィフトSKActionシーケンス

self.runAction(
     SKAction.sequence([ 
      SKAction.runBlock({ 
       print("Step 1") 
      }), 
      SKAction.waitForDuration(2), 
      SKAction.runBlock({ 
       print("step 2") 
      }), 
      SKAction.waitForDuration(2), 
      SKAction.runBlock({ 
       print("step 3") 
      }), 
     ]) 
    ) 

ステップ1プリントがコンソールに、ただし、手順2と3はそうではない - 最初のアクションが実行されることをようだが、他のすべてはありません。

ありがとうございました。

それは私のクラスとは何かを持っていますか?

class Arrow: Entity{} 
class Entity: SKSpriteNode 

私は、Arrowクラスの関数からコードブロックを呼び出しています。ドキュメントから

+0

すべてがそのコードで結構です。この場合の自己は何ですか? – Whirlwind

+0

print( "step 2")がコンソールに印刷されない理由は何ですか? – garyconstable

+0

実行中のコードはありますか?このコードは有効であり、動作するはずです。空のプロジェクトでそれを試してみると、(私は自分自身が現在のシーンであると思っています)。 – Whirlwind

答えて

2

アンSKActionオブジェクトは シーン内のノードによって実行されるアクションである

手段ノードをシーンに追加されていない場合、アクションができ実行されません。 現在起こっていることは、アクションシーケンスが完了する前に、あなたの矢印(明らかに)が何とかシーンから削除されていることです。また、ある時点で矢印ノードからすべてのアクションを(誤ってremoveAllActions()メソッドを使用して)削除しているかどうかを確認してください。これにより、アクション実行も停止する可能性があります。

+0

その奇妙な - 矢印は、私はそれを見ることができている!、矢印は、コードを実行し、ステップ取得することができます起動しますがプレイヤー2 - しかし、矢印は、コード自体ができ – garyconstable

+0

@garyconstableその後追加より多くのコードを実行することはできません問題を再現する...誰もがちょうど推測できるこの方法;) – Whirlwind