【问题标题】: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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多