2016-11-24 25 views
0

在完全加载场景后添加精灵节点的最佳方式是什么?序列如下所示: 1)我构建场景GameScene()。 2)一段时间后,我下载后端数据,并使用这个信息在不同的类NodeBuilder()中构建SKSpriteNode。
3)我想将这个节点添加到我已经加载的场景的实例中。 实现步骤3)的最佳方式是什么?如何添加一个精灵现有的场景

回答

1

GameScene

addChild(yourNode) 

对于获得并保持到NodeBuilder的引用:

NodeBuilder创作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 

    } 
} 

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

谢谢你的回答,但你不明白。可以在GameScene()中的viewDidLoad()或其他函数中使用addChiled()。我试图在所有这些函数运行并且GameScene的一个实例已经启动并运行后加载节点 –

+0

@ ShaneO'Seasnain你必须做出一些事情触发这个然后 – Nik

+0

@ ShaneO'Seasnain是的,你仍然可以使用这个在GameScene运行时随时添加节点。 – Wes

相关问题