2014-10-11 2 views
0

Я пытался научиться быстро в течение нескольких дней, и все учебные пособия, которые я нашел, имели указанное число SKNodes. Я пытаюсь программно добавить новые экземпляры в массив nodeList и добавить их в сцену, потому что я хочу, чтобы каждый из них периодически выполнял некоторый код. Это мой текущий вариант кода для добавления новых объектов:Добавить детей из массива

if (last_created < 0) { 

    //Some other code here 

    for i in 0...3 { 
     self.nodeList.append(self.backObject); 

     var x_current = CGFloat(Float(arc4random())/4294967296.0 * Float(x_range) + Float(x_min)); 
     var y_current = CGFloat(Float(y_min) - Float(y_range)); 

     self.nodeList[self.nodeList.count-1].position = CGPoint(x: x_current, y: y_current); 
     self.addChild(self.nodeList[self.nodeList.count-1]); 
    } 
} 

Попытки выполнить это вызывает исключение:

Attemped to add a SKNode which already has a parent 

Я полагаю, что каждый элемент в моем nodeList массиве рассматривается как тот же объект, а не отдельные экземпляры. Однако я не знаю, как исправить эту проблему. Как мне это сделать?

Благодарим за помощь.

ответ

1

Вы добавляете self.backObject к массиву несколько раз, поэтому он добавляется в сцену более одного раза, вызывая ошибку. Вы должны создать новый экземпляр узла в цикле и добавить его в массив.

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