im for swift sprite kit我只是学习节点和这些东西。当我玩节点时,我想知道如何打印以控制我当前在场景中拥有的节点的所有名称。我阅读并尝试enumerateChildNodes,但我没有做到这一点并且在这样做时失败了。 有什么选择可以做我试图做的事情吗?
答案 0 :(得分:0)
如果要访问场景中的所有节点,可以定义访问方法
import SpriteKit
extension SKNode {
func visit() {
print(self.name)
children.forEach { $0.visit() }
}
}
最后在你的场景中写下
class Scene:SKScene {
override func didMove(to view: SKView) {
super.didMove(to: view)
visit() // <--
}
}
let scene = Scene()
scene.name = "scene"
let a = SKNode()
a.name = "a"
let b = SKNode()
b.name = "b"
let c = SKNode()
c.name = "c"
let d = SKNode()
d.name = "d"
a.addChild(b)
b.addChild(c)
scene.addChild(a)
scene.addChild(d)
scene.visit()
结果
Optional("scene")
Optional("a")
Optional("b")
Optional("c")
Optional("d")