2016-11-24 4 views
0

シーンが完全にロードされた後にスプライトノードを追加する最適な方法は何ですか?シーケンスは次のようになります。 1)シーン、GameScene()をビルドします。 2)しばらくして、バックエンドのデータをダウンロードし、この情報を使って別のクラスNodeBuilder()でSKSpriteNodeを構築します。
3)私はすでにロードしているシーンのインスタンスにこのノードを追加したいと思います。 手順3)を達成する最良の方法は何ですか? GameSceneスプライトを既存のシーンに追加する方法

答えて

1

addChild(yourNode) 

NodeBuilderへの参照を取得し、維持するため:GameSceneにおけるNodeBuilder

作成:NodeBuilder

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 

    } 
} 

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 
} 
+0

ご回答ありがとうございます。ご理解いただけません。 addChiled()は、viewDidLoad()やGameScene()内の他の関数で使用できます。これらすべての関数が実行され、GameSceneのインスタンスが既に起動していて、ノードをロードしようとしています。 –

+0

@ ShaneO'Seasnainこれをトリガーする必要があります。 – Nik

+0

@ ShaneO'Seasnainはい、あなたはまだこれを使用できます'GameScene'の実行中にいつでもノードを追加することができます。 – Wes

関連する問題