Shane O'Seasnain Shane O'Seasnain - 14 days ago 9
Swift Question

how to add a sprite an existing scene

What is the best way to add a sprite node after a scene has been fully loaded? The sequence looks like this:
1) I build the scene, GameScene().
2) Some time later, I download backend data and I use this info to build a SKSpriteNode in a different class, NodeBuilder().

3) I want to add this node to the instance of my scene that I'd already loaded.
What's the best way to achieve step 3)?

Wes Wes
Answer

In GameScene:

addChild(yourNode)

For getting and keeping a reference to NodeBuilder:

Creation of NodeBuilder in GameScene:

class GameScene : SKScene {

    var nodeBuilder = NodeBuilder() // Create an instance of NodeBuilder

    func didMoveToView(skView: SKView) {

        nodeBuilder.gameScene = self // Add self as the instance of GameScene that nodeBuilder has reference to

    }
}

In NodeBuilder:

class NodeBuilder {

    var gameScene : GameScene! // This is how you keep your reference

    func addNodeToGameScene(node: SKNode) {

        self.gameScene.addChild(node)

    }

    addNodeToGameScene(aNode) // This is how you would call the method to add a node to GameScene from NodeBuilder
}