Reputation: 11
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