我目前正在使用Spritekit和Swift3制作一款游戏,这是一款2D的横向卷轴无尽奔跑游戏。我试图让某些节点随着我的相机移动,但问题在于它们将会是程序生成的,并属于同一类,因此我需要它们都有相同的名称。在我继续之前,这是相关代码的片段:
(所有变量都已初始化)
//让这些节点随相机移动
private var ChoosePieces: ChoosePiecesClass?;
override func didMove(to view: SKView) {
initializeGame();
}
override func update(_ currentTime: TimeInterval) {
enumerateChildNodes(withName: "ChoosePieces") {
node, stop in
_ = node as! SKSpriteNode
self.ChoosePieces?.moveWithCamera();
}
}
private func initializeGame() {
ChoosePieces = childNode(withName: "ChoosePieces") as? ChoosePiecesClass;
}
我已经测试了moveWithCamera()函数,它很好用——它只是简单地将节点的x值增加了10,与相机以相同的速度移动,因此节点始终保持在屏幕上相同的位置。
我的问题是,我不确定如何在我的节点中使用enumerateChildNodes(withName: "String")函数,以便它能识别所有节点并移动它们。现在这些元素只是静止不动。我从另一个人的帖子中找到了这个函数,他/她试图在游戏中生成“敌人”。谢谢您的帮助!