2016-11-23 2 views
3

Ich versuche viele Sprites in meinem Spiel anzuhalten. Gibt es eine Möglichkeit, Sprites, die zPosition oder alle Sprites unter einem gegebenen zPosition haben, anzuhalten? Diese Sprites können auch physikalische Körper haben, die in der Update-Methode aktualisiert werden.Gibt es eine Möglichkeit, alle Sprites mit einer bestimmten zPosition und darunter anzuhalten?

+1

Es ist sicherlich möglich. Sie haben wenige Möglichkeiten, wenn Sie ihre zPosition vor ihrer Erstellung kennen, könnten Sie sie in ein Elternteil einfügen und nur Elternteil pausieren. Wenn Sie ihre Physikkörper pausieren müssen, müssen Sie durch Knoten aufzählen. Auch wenn Sie diese Knoten nicht zu einem einzigen Elternteil haben können, tun die, was in Alessandros Antwort – Whirlwind

+0

@Whirlwind hingewiesen wird. Großer Kommentar, ich stimme allem zu. –

+0

@AlessandroOrnano Auch, was Sie gesagt haben, kann die Suche nach Namen auch verwendet werden. – Whirlwind

Antwort

4

Sie einen Code wie in diesem Beispiel unter dieser Aufgabe zu tun, verwenden kann:

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 
     } 
    } 
} 

Sie können auch einen bestimmten „Namen“ nur statt „*“ in der ersten Zeile zu einer Gruppe verwenden entscheiden Knoten mit diesem Namen.

+0

das ist eine wirklich gute Antwort – Fluidity

Verwandte Themen