objective c - ¿Cómo traer un SKSpriteNode al frente?
objective-c sprite-kit (3)
Esta extensión agrega un método bringToFront a SKNode. Esto es genial para los momentos en que zPosition
es inapropiado, y usted quiere confiar en el orden de los hermanos.
extension SKNode {
func bringToFront() {
guard let parent = parent else { return }
removeFromParent()
parent.addChild(self)
}
}
`
¿Cómo puedo traer un SKSpriteNode al frente de todos los demás nodos?
Con UIView, puedo usar bringSubviewToFront para llevar una uiview frente a otras vistas.
Si quieres traer un nodo al frente, usa esto:
yourNode.zPosition = 1
o muy atrás:
yourNode.zPosition = -1
o el mismo nivel que otros nodos (ya que se establece en este valor de forma predeterminada):
yourNode.zPosition = 0
No puede "llevarlo al frente", pero puede cambiar la posición zPosition
de la misma.
Cuanto más alta sea la posición zPosition
del nodo, más tarde se procesa.
Entonces, si tiene tres nodos con zPositions
de -1, 0 y 1, el -1 aparecerá en la parte posterior. Luego el 0. Entonces aparecerá 1 en el frente.
Si todos usan la zPosition
predeterminada de 0.0, se procesan en el orden en que aparecen en la matriz zPosition
del nodo principal.
Puedes leerlo todo en la documentación.