ios swift sprite-kit skshapenode

ios - Dibujando una línea con SKShapeNode



swift sprite-kit (1)

Bueno, está agregando la misma instancia hijo una y otra vez. Cree un nodo de línea cada vez y añádalo cada vez al nodo principal, y luego resolverá su problema.

var ref = CGPathCreateMutable() override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { if let touch = touches.anyObject() as? UITouch { let location = touch.locationInNode(self) CGPathMoveToPoint(ref, nil, location.x, location.y) } } override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { for touch: AnyObject in touches { let locationInScene = touch.locationInNode(self) var line = SKShapeNode() CGPathAddLineToPoint(ref, nil, locationInScene.x, locationInScene.y) line.path = ref line.lineWidth = 4 line.fillColor = UIColor.redColor() line.strokeColor = UIColor.redColor() self.addChild(line) } }

Quiero simplemente dibujar una línea usando SKShapeNode. Estoy usando SpriteKit y Swift.

Aquí está mi código hasta ahora:

var line = SKShapeNode() var ref = CGPathCreateMutable() override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { for touch: AnyObject in touches { let location = touch.locationInNode(self) } } override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { for touch: AnyObject in touches { let locationInScene = touch.locationInNode(self) CGPathMoveToPoint(ref, nil, locationInScene.x, locationInScene.y) CGPathAddLineToPoint(ref, nil, locationInScene.x, locationInScene.y) line.path = ref line.lineWidth = 4 line.fillColor = UIColor.redColor() line.strokeColor = UIColor.redColor() self.addChild(line) } }

Cada vez que lo ejecuto y trato de dibujar una línea, la aplicación se bloquea con el error: reason: ''Se atiene a agregar un SKNode que ya tiene una matriz: SKShapeNode name:'' (null) ''accumulatedFrame: {{0, 0}, {0 , 0}} ''

¿Por qué está pasando esto?