Wie kann ich einen SKSpriteNode an die Front aller anderen Knoten bringen?Wie bringt man einen SKSpriteNode nach vorne?
Mit UIView kann ich bringSubviewToFront verwenden, um eine uiview vor anderen Ansichten zu bringen.
Wie kann ich einen SKSpriteNode an die Front aller anderen Knoten bringen?Wie bringt man einen SKSpriteNode nach vorne?
Mit UIView kann ich bringSubviewToFront verwenden, um eine uiview vor anderen Ansichten zu bringen.
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.
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)
}
}
`
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
Danke für die Unterstützung. Das ist das, was ich benötige. Jetzt kann ich SKSpriteNode an den Anfang des Hintergrunds bringen. –
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