Swift 如何计算精灵的数量

Swift 如何计算精灵的数量,swift,sprite-kit,enumeration,Swift,Sprite Kit,Enumeration,我正在构建一个应用程序,将精灵添加到屏幕上。 在我的代码的几个部分中,我想知道有多少精灵使用某个键。 当时我是这样实现的 var counter = 0 enumerateChildNodesWithName("box") { node, _ in counter = counter + 1 } println(counter) 还有其他更简单、更短的方法吗? 感谢来自iOS8的,SKNode拥有下标成员,该成员查询节点并返回数组 因此,您可以: let count = self["box

我正在构建一个应用程序,将精灵添加到屏幕上。 在我的代码的几个部分中,我想知道有多少精灵使用某个键。 当时我是这样实现的

var counter = 0
enumerateChildNodesWithName("box") { node, _ in
  counter = counter + 1
}
println(counter)
还有其他更简单、更短的方法吗?
感谢来自iOS8的
SKNode
拥有
下标
成员,该成员查询节点并返回
数组

因此,您可以:

let count = self["box"].count
println(count)
而不是:

var counter = 0
self.enumerateChildNodesWithName("box") { _, _ in
    counter += 1
}
println(counter)

从iOS8
SKNode
具有查询节点并返回数组的
下标
成员

因此,您可以:

let count = self["box"].count
println(count)
而不是:

var counter = 0
self.enumerateChildNodesWithName("box") { _, _ in
    counter += 1
}
println(counter)

次要要点:
节点、\u
可以是
\u
counter=counter+1
可以是
counter++
。你做得对。唯一的另一种选择是“引用计数”,即每当你添加一个精灵,你就增加一个计数器值,如果你删除一个,你就减少这个值。最好通过单个方法路由所有添加/删除,这样您就不会错过或忘记更改计数器。不过,这个解决方案可能很脆弱。@learncos2D我认为你是对的,因为我有一个生成方法和另一个销毁方法。最好的方法是只使用++和-,然后在需要时询问值。@MartinR谢谢你。实际上,我不清楚在该方法之后必须使用的语法…但它无论如何都可以工作。
self[“box”]。count
不起作用?要点:
node、\u
可以是
,\u
counter=counter+1
可以是
counter++
。你做得对。唯一的另一种选择是“引用计数”,即每当你添加一个精灵,你就增加一个计数器值,如果你删除一个,你就减少这个值。最好通过单个方法路由所有添加/删除,这样您就不会错过或忘记更改计数器。不过,这个解决方案可能很脆弱。@learncos2D我认为你是对的,因为我有一个生成方法和另一个销毁方法。最好的方法是只使用++和-,然后在需要时询问值。@MartinR谢谢你。实际上,我不清楚在该方法之后必须使用的语法…但它无论如何都可以工作
self[“box”]。count
不起作用?目前我找到了一个解决方法,正如LearnCos2D建议的那样,但谢谢你的回答,帮助我更好地理解了swift。@Nicholas这个答案是一个更好的解决方案,它不需要你维护场景中的节点数。您甚至可以使用
“//box”
@0x141E搜索节点树,您能给我一个简单的片段吗?
让count=self[“//box”]
提供了在我找到LearnCos2D建议的解决方案时,场景中名为“box”的所有节点和节点后代的计数,但谢谢你的回答,帮助我更好地理解了swift。@Nicholas这个答案是一个更好的解决方案,它不需要你维护场景中的节点数。您甚至可以使用
“//box”
@0x141E搜索节点树,您能给我一个简单的代码片段吗?
让count=self[“//box”]
提供场景中名为“box”的所有节点和节点后代的计数