La position de los nodos secundarios spriteKit de iOS con respecto a las coorderadas de vista

Tengo un nodo secundario agregado a otro nodo. Quiero get la position de los nodos secundarios con respecto a las coorderadas de vistas y no a las coorderadas de los nodos principales

Obtenga la position del nodo hijo con respecto a su padre, luego use el convertPoint:fromNode: o convertPoint:toNode: para convertir del sistema de coorderadas del nodo padre al sistema de coorderadas de la escena. (Recuerde, SKScene henetworkinga de SKNode y es la raíz de la jerarquía de nodos, por lo que puede usarla con cualquiera de estos methods). Si necesita trabajar en el espacio de coorderadas de la vista UIKit, use el método convertPointToView: .

Si por "coorderadas de vista" te refieres a las coorderadas de la escena, entonces mira esta rápida solución que uso:

 extension SKNode { var positionInScene:CGPoint? { if let scene = scene, let parent = parent { return parent.convert(position, to:scene) } else { return nil } } } 

Entonces puedes get la position de la escena de la misma manera que obtienes la position normal. Aquí hay un ejemplo:

 let positionInParent = childNode.position let positionInScene = childNode.positionInScene? //optional return type 

Tenga en count que la propiedad positionInScene es opcional por la misma razón que la propiedad de escena de SKNode es opcional, es posible que el nodo no se agregue a una escena. En este caso, obtienes cero. Incluso podrías revertir el process y agregar un setter, para que puedas ubicar cada nodo en las coorderadas de la escena, sin importar cuán profundamente esté enterrado.

    Intereting Posts