我正在尝试检查SpriteKit场景是否包含名称包含“ wall”的节点。 我已经尝试过if语句:
if children.contains(name?.range(of: "wall")) {
}
但是我得到这个错误: “无法转换'Range类型的值?'到预期的参数类型“ SKNode””
答案 0 :(得分:0)
我可以理解您在尝试中要做的事情,但是不幸的是,您通常无法以与编写英语相同的方式编写Swift。
children.contains(where: { $0.name?.contains("wall") ?? false })
contains(where:)
接受闭包。它将闭包应用于序列中的每个项目。如果闭包的任何应用返回true,则contains(where:)
返回true。
答案 1 :(得分:0)
您可以使用scene.childNode(withName:"//*wall*")
在整棵树中搜索名为wall的节点,如果它不是nil,则说明存在一堵wall。
示例:
if let _ = scene.childNode(withName:"//*wall*"){
//scene contains wall
}