按特定 class 名称搜索 child
search for child by specific class name
在阅读了关于搜索 child 节点的 apple doc 之后,我了解到我不仅可以通过节点名称进行搜索,还可以通过其 class 进行搜索 - 通过在内部使用 project_name.class_name withName
变量。我的项目名称是颜色,我有一个 class 类型 SKShapeNode
的名称 BallNode。不幸的是,我找不到使用这种方法的节点(如 apple doc 所写)。在我的项目中,球是在屏幕上随机创建的,当我按名称 (BALL) 搜索时,每个球的名称都是 "BALL"我可以找到节点,但如果我尝试使用 class 名称,它就会起作用。
这是我的代码:
override func update(_ currentTime: TimeInterval) {
self.enumerateChildNodes(withName: "color.BallNode") { node, _ in
print("ball node found")
}
有人知道我做错了什么吗?
Apple 的 link 确实显示了正确的代码。我刚刚在测试项目中尝试了以下代码并且它有效
let ball = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
ball.name = "ball1"
addChild(ball)
let ball2 = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
ball2.name = "ball21"
addChild(ball2)
let ball3 = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
ball3.name = "ball3"
addChild(ball3)
self.enumerateChildNodes(withName: "WordConstructor.PushButton") { node,_ in
print("node.name \(node.name)")
}
我会检查你的项目名称是 "color" 而不是 "Color" 你的项目中有多个目标吗?
你能展示一下你把球添加到场景中的代码吗?
仅供参考 运行 在您的更新语句中,您的游戏将尝试每秒查找 60 次,这可能不是最佳选择
在阅读了关于搜索 child 节点的 apple doc 之后,我了解到我不仅可以通过节点名称进行搜索,还可以通过其 class 进行搜索 - 通过在内部使用 project_name.class_name withName
变量。我的项目名称是颜色,我有一个 class 类型 SKShapeNode
的名称 BallNode。不幸的是,我找不到使用这种方法的节点(如 apple doc 所写)。在我的项目中,球是在屏幕上随机创建的,当我按名称 (BALL) 搜索时,每个球的名称都是 "BALL"我可以找到节点,但如果我尝试使用 class 名称,它就会起作用。
这是我的代码:
override func update(_ currentTime: TimeInterval) {
self.enumerateChildNodes(withName: "color.BallNode") { node, _ in
print("ball node found")
}
有人知道我做错了什么吗?
Apple 的 link 确实显示了正确的代码。我刚刚在测试项目中尝试了以下代码并且它有效
let ball = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
ball.name = "ball1"
addChild(ball)
let ball2 = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
ball2.name = "ball21"
addChild(ball2)
let ball3 = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
ball3.name = "ball3"
addChild(ball3)
self.enumerateChildNodes(withName: "WordConstructor.PushButton") { node,_ in
print("node.name \(node.name)")
}
我会检查你的项目名称是 "color" 而不是 "Color" 你的项目中有多个目标吗?
你能展示一下你把球添加到场景中的代码吗?
仅供参考 运行 在您的更新语句中,您的游戏将尝试每秒查找 60 次,这可能不是最佳选择