Shane O'Seasnain Shane O'Seasnain - 1 year ago 78
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 Source

In GameScene:


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) {



    addNodeToGameScene(aNode) // This is how you would call the method to add a node to GameScene from NodeBuilder
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download