2016-11-23 8 views
3

私はゲームで多くのスプライトを一時停止しようとしています。指定されたzPositionまたはすべてのスプライトが指定されたzPosition以下のスプライトを一時停止できる方法はありますか?これらのスプライトは、更新メソッドで更新されている物理団体を持つこともできます。特定のzPosition以下のすべてのスプライトを一時停止する方法はありますか?

あなたはこのタスクを実行するには、以下の例のようなコードを使用することができます
+1

確かに可能です。いくつかのオプションがあります。作成前にzPositionを知っていれば、それらを1つの親に入れて親だけを一時停止することができます。物理学の本体を一時停止する必要がある場合は、ノードを通して列挙する必要があります。また、これらのノードを単一の親に持つことができない場合、Alessandroの答えに指摘されていることを実行してください。 – Whirlwind

+0

@Whirlwind素晴らしいコメント、私はすべてに同意します。 –

+0

@AlessandroOrnanoまたあなたが言ったことは、名前で検索することもできます。 – Whirlwind

答えて

4

self.enumerateChildNodes(withName: "//*") { 
    node, stop in 
    if node.zPosition > 1 && node.zPosition < 4 { 
     // do whatever you want with these nodes (sprites, labels..) 
     if node is SKSpriteNode { // you can use also this filter to pause only SKSpriteNode types 
      node.isPaused = true 
     } 
    } 
} 

あなたはまた、唯一のグループに代わりに最初の行に「*」の具体的な「」を使用することを決定することができますこの名前のノード。

+0

これは本当に良い答えです – Fluidity

関連する問題