How to apply these transformations to a line in SpriteKit

Viewed 249

I'm not sure what tools I should use for what I'm trying to do since I'm only really familiar with SKSpriteNodes and a little bit with SKShapeNodes.

My mission is as follows:

  • Add a line to the scene, SKShapeNode?
  • Rotate the line along it's bottom point (beginning point?) by some angle. Imagine a clock hand for this, rotating around the bottom point
  • Find the new point (x,y coord) of the top point (end point?) after the line has been translated

Does anyone know how I can accomplish this? I'm currently using an SKShapeNode for my line and rotating it with .zRotation but I can't seem to accomplish my goal. There doesn't seem to be an achorPoint property for SKShapeNodes, so I can't change the point of rotation. Also I'm clueless on how to find the position of the end point of my line AFTER it has been rotated, I created it as follows:

        let linePath = CGMutablePath()
        linePath.move(to: begin)
        linePath.addLine(to: end)

        let line = SKShapeNode()
        line.path = linePath
        line.strokeColor = UIColor.black
        line.lineWidth = 5
        SceneCoordinator.shared.gameScene.addChild(line)

I'm rotating using:

     public func rotate(angle: Double) {
        var transform = CGAffineTransform(rotationAngle: CGFloat(angle))
        line.path = linePath.mutableCopy(using: &transform)
    }
1 Answers
Related