В быстром, код ниже вызывается с определенной скоростью (2 раза в секунду) от didMoveToView()
. Каждый раз, когда вызывается эта функция, на экране должен появляться новый круговой поток. Но вместо того, чтобы постоянно добавлять их, когда он пытается добавить второй, он выдает ошибку: попытался добавить sknode
, у которого уже есть родитель. Я понял, что вы не можете сделать дубликат узла на одном и том же представлении. С учетом этого я пришел к выводу, что мне нужно будет создать массив SKShapeNodes
, поэтому всякий раз, когда вызывается функция, он берет один из массива и добавляет его в представление. Когда узел достиг дна (y = -20) в моем случае, тогда ему нужно будет удалить узел и снова использовать его для использования.Создать массив SKShapeNodes. Swift> Xcode 6
Итак, мой вопрос: Как сделать массив из SKShapeNode
s, поэтому, когда моя функция ниже называется, он займет новый узел и отобразит его в представлении? Кроме того, когда узлы покидают представление, ему нужно будет снова использовать узел для использования.
let circlenode = SKShapeNode(circleOfRadius: 25) //GLOBAL
func thecircle() {
circlenode.strokeColor = UIColor.whiteColor()
circlenode.fillColor = UIColor.redColor()
let initialx = CGFloat(20)
let initialy = CGFloat(1015)
let initialposition = CGPoint(x: initialx, y: initialy)
circlenode.position = initialposition
self.addChild(circlenode)
let action1 = SKAction.moveTo(CGPoint(x: initialx, y: -20), duration: NSTimeInterval(5))
let action2 = SKAction.removeFromParent()
circlenode.runAction(SKAction.sequence([action1, action2]))
}
Благодарим вас за подробный ответ! Я проведу этот код быстрым на этой неделе и дам вам знать, как он прошел! – 24GHz
Фантастический! Вариант 1 действительно работал лучше для меня :) Большое спасибо за помощь – 24GHz