2014-02-18 4 views

ответ

15

Получить ребенок узла position относительно его родителя, а затем использовать метод convertPoint:fromNode: или convertPoint:toNode: для преобразования из системы координат родительского узла к системе координат сцены. (Помните, что SKScene наследует от SKNode и является корнем иерархии узлов, поэтому вы можете использовать его с любым из этих методов.) Если вам нужно работать в пространстве координат вида UIKit, используйте метод сцены convertPointToView:.

0

Если под «видом координаты» вы имеете в виду координаты сцены, а затем проверить это быстрое решение, я использую:

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

Тогда вы можете получить позицию сцены таким же образом, вы получаете регулярную позицию. Ниже приведен пример:

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

Обратите внимание, что свойство является необязательным positionInScene по той же причине, что свойство сцены SKNode не является обязательным, узел не может быть добавлен к сцене. В этом случае вы получаете нуль. Вы можете даже изменить процесс и добавить сеттер, чтобы вы могли расположить каждый узел в координатах сцены независимо от того, насколько глубоко он был похоронен.

Смежные вопросы