【问题标题】:how to print nodes names如何打印节点名称
【发布时间】:2017-10-29 08:21:05
【问题描述】:
我是 swift sprite kit 的新手,我刚刚学习了节点和这些东西。当我玩节点时,我想知道如何打印以控制台我当前在我的场景中拥有的所有节点的名称。我阅读并尝试了 enumerateChildNodes 但我没有做对并且在这样做时失败了。
有什么选择可以做我想做的事吗?
【问题讨论】:
标签:
swift
sprite-kit
nodes
scene
【解决方案1】:
如果要访问场景中的所有节点,可以定义访问方法
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")