gmb55
gmb55

Reputation: 11

SKShapeNode subclass

I'm trying to use subclass to create SKShapeNode.

But in draw() function I'm using self.scene property which is nil, why?

When I move whole code to GameScene file, it works.

class GameScene: SKScene {

let blocksCount: Int

init(size: CGSize, level: Int) {
    self.blocksCount = (level + 2) * 2
    super.init(size: size)
}

override func didMove(to view: SKView) {
    run(SKAction.run(addOuterMovingBlocks))
} 
 
private func addOuterMovingBlocks() {
        let shape = ExternalRingNode()
        shape.setup(number: 1)

        addChild(shape)
}
} 
 

class ExternalRingNode: SKShapeNode {

override init() {
    super.init()
}

func setup(number: Int) {
    path = draw(number).cgPath
}

func draw(_ number: Int) -> UIBezierPath {
    guard let scene = scene as? GameScene else { return }
    
    return UIBezierPath()
}
}

Upvotes: 0

Views: 52

Answers (0)

Related Questions