Come posso portare un SKSpriteNode nella parte anteriore di tutti gli altri nodi?Come portare un SKSpriteNode in primo piano?
Con UIView, posso utilizzare bringSubviewToFront per portare uniview di fronte ad altre visualizzazioni.
Come posso portare un SKSpriteNode nella parte anteriore di tutti gli altri nodi?Come portare un SKSpriteNode in primo piano?
Con UIView, posso utilizzare bringSubviewToFront per portare uniview di fronte ad altre visualizzazioni.
Non è possibile "portarlo in primo piano" ma è possibile modificare lo zPosition
di esso.
Quanto più alto è il zPosition
del nodo, più tardi viene eseguito il rendering.
Quindi, se si dispone di tre nodi con zPositions
di -1, 0 e 1, sul retro verrà visualizzato -1. Quindi lo 0. Quindi 1 apparirà in primo piano.
Se tutti utilizzano il valore predefinito zPosition
di 0.0, vengono visualizzati nell'ordine in cui appaiono nell'array figlio del nodo padre.
È possibile leggere tutto nei documenti.
Questa estensione aggiunge un metodo per bringToFront
SKNode. Questo è ottimo per i momenti in cui lo zPosition
non è appropriato e si desidera fare affidamento sull'ordinamento fratello.
extension SKNode {
func bringToFront() {
guard let parent = parent else { return }
removeFromParent()
parent.addChild(self)
}
}
`
Se si vuole portare un nodo al molto anteriore usare questo:
yourNode.zPosition = 1
o al molto indietro:
yourNode.zPosition = -1
o allo stesso livello degli altri nodi (Come è impostato su questo valore di default):
yourNode.zPosition = 0
Grazie per l'aiuto. Questo è quello di cui ho bisogno. Ora posso portare SKSpriteNode in primo piano sullo sfondo. –
potresti anche creare 2 livelli (o più). ne hai uno per lo sfondo e l'altro per i giocatori, ecc. L'ordine che aggiungi inciderà sulla stratificazione, quindi aggiungi prima il livello di sfondo. – DogCoffee