2013-10-03 6 views

Antwort

45

Sie können nicht "nach vorne bringen", aber Sie können die zPosition davon ändern.

Je höher der zPosition des Knotens, desto später wird er gerendert.

Wenn Sie also drei Knoten mit zPositions von -1, 0 und 1 haben, dann erscheint die -1 auf der Rückseite. Dann die 0. Dann erscheint 1 auf der Vorderseite.

Wenn alle die Standardeinstellung zPosition von 0.0 verwenden, werden sie in der Reihenfolge wiedergegeben, in der sie im Child-Array des Elternknotens angezeigt werden.

Sie können alles in der Dokumentation lesen.

https://developer.apple.com/documentation/spritekit/sknode

+1

Danke für die Unterstützung. Das ist das, was ich benötige. Jetzt kann ich SKSpriteNode an den Anfang des Hintergrunds bringen. –

+2

können Sie auch 2 Ebenen (oder mehr) erstellen. habe eine für den Hintergrund und die andere für die Spieler usw. Die Reihenfolge, in der du diese hinzufügst, wirkt sich auf die Ebenen aus, also füge zuerst die Hintergrundebene hinzu. – DogCoffee

0

Diese Erweiterung fügt eine bringToFront Methode SKNode. Das ist großartig für Zeiten, in denen zPosition unpassend ist und Sie sich auf Geschwisterreihenfolge verlassen wollen.

extension SKNode { 
    func bringToFront() { 
     guard let parent = parent else { return } 
     removeFromParent() 
     parent.addChild(self) 
    } 
} 

`

0

Wenn Sie einen Knoten ganz vorne diese bringen wollen verwenden:

yourNode.zPosition = 1

oder ganz hinten:

yourNode.zPosition = -1

oder auf derselben Ebene wie andere Knoten (Wie es standardmäßig eingestellt auf diesen Wert):

yourNode.zPosition = 0