objective-c sprite-kit skspritenode

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.

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