apple developer

home tech-notes github twitter stackoverflow dev.to

Creating a Shape Node from an Array of Points

Create jagged or smooth shapes from the same array of points.


An SKShapeNode object can be initialized with an array of points describing a path. The init(splinePoints:count:) method can smoothly interpolate between these points to create a curve rather than the series of straight lines created by init(points:count:). The following code shows how to create two shape nodes using the same array of points for both initializers.

var points = [CGPoint(x: 0, y: 0),               
              CGPoint(x: 100, y: 100),               
              CGPoint(x: 200, y: -50),               
              CGPoint(x: 300, y: 30),               
              CGPoint(x: 400, y: 20)]         
let linearShapeNode = SKShapeNode(points: &points,                                   
                                  count: points.count)          
let splineShapeNode = SKShapeNode(splinePoints: &points,                                   
                                  count: points.count)

The following image shows linearShapeNode in blue and splineShapeNode in red.


download this page as .md

download this page as .pdf

back to SpriteKit documentation