tutorials spritekit que ios sprite-kit swift

ios - spritekit - Cambiar el radio de SKShapeNode



spritekit que es (1)

Si crea SKShapeNode con una ruta, puede cambiar la ruta en cualquier momento posterior. Prueba esto:

class GameScene: SKScene { override func mouseDown(theEvent: NSEvent) { let location = theEvent.locationInNode(self) let node = self.nodeAtPoint(location) if let circle = node as? SizeableCircle { // clicking on an existing circle circle.radius = Double(arc4random_uniform(100)) } else { // clicking on empty space self.addChild(SizeableCircle(radius: 100.0, position: location)) } } } class SizeableCircle: SKShapeNode { var radius: Double { didSet { self.path = SizeableCircle.path(self.radius) } } init(radius: Double, position: CGPoint) { self.radius = radius super.init() self.path = SizeableCircle.path(self.radius) self.position = position } class func path(radius: Double) -> CGMutablePathRef { var path: CGMutablePathRef = CGPathCreateMutable() CGPathAddArc(path, nil, 0.0, 0.0, radius, 0.0, 2.0 * M_PI, true) return path } }

La diferencia entre esto y la escala es que cualquier otra cosa que establezca (por ejemplo, ancho de línea, nodos de texto para niños, etc.) no cambiará a menos que los haga.

¿Cómo podemos cambiar el radio del SKShapeNode sin volver a crearlo? En el archivo de encabezado, solo hay un inicializador con la sintaxis circleOfRadius.