Изменение родителя Spritekit приводит к исчезновению узла

У меня есть SKScene с узлом (большим квадратом) в центре. У меня есть другие узлы, и я хотел бы изменить их родителя на mySquare вместо сцены.

Я пытался использовать myNode.moveToParent(mySquare). Кажется, это работает, так как я могу найти свои узлы под mySquare в дереве узлов (for node in mySquare.children напечатайте мне правильные узлы). Моя проблема в том, что я больше не вижу эти узлы...

Мне было интересно, может ли узел иметь неправильное положение, поэтому я попытался изменить его положение с помощью node.position = mySquare.convertPoint(node.position, fromNode: self). Я попытался поместить позицию узла во временную переменную перед moveToParent и вместо этого преобразовать эту позицию, это не сработало. Затем я попытался просто разместить узел в центре mySquare с помощью node.position = CGPoint(x: 0.5, y: 0.5), который является точкой привязки mySquare, но узел все равно исчез.

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

У вас есть идеи, как это исправить?

Большое спасибо за уделенное время.


Дополнительная информация

Вот как я создал свой узел

let object = SKSpriteNode(imageNamed: "myObject")
self.addChild(copy() as! SKSpriteNote)

Я устанавливаю положение, соответствующее касанию (я создаю, когда касаюсь внутри mySquare).

mySquare уже находится в сцене с самого начала (я перетащил SKShapeNode в редакторе сцен, который является квадратом).

Здесь я меняю родителя

func sizeOfObject(sender: UIPinchGestureRecognizer){
    if (sender.state == .Began){
        for nodes in nodesOnMySquare {
            let pos = table.convertPoint(node.position, fromNode: self)
            node.removeFromParent()
            table.addChild(node)
            node.position = pos
        }
    }

В моем цикле for я также протестировал moveToParent, например

node.moveToParent(table)  //Same result, the node disappear

person David Gourde    schedule 17.11.2015    source источник


Ответы (1)


Проверьте zPosition вашего узла. Возможно, он скрыт за другим элементом.

person Stefan    schedule 17.11.2015
comment
Я это тоже проверяю, я пытался поставить zPosition выше, чем любой другой узел в проекте, я все еще не вижу его. - person David Gourde; 18.11.2015
comment
Хорошо, странно. И размер вашего целевого узла? Можете ли вы дать нам небольшой пример кода? - person Stefan; 18.11.2015
comment
Хм. Я не вижу, где вы используете объект. Он создан только в вашем образце. Также отсутствует функция копирования. - person Stefan; 18.11.2015
comment
Я добавил больше информации. Функция копирования сделана не мной (функция копирования SKSpriteNode). - person David Gourde; 18.11.2015