我想知道场景中节点的数量。例如,我想创建一个if
语句,以便如果场景中的节点数为0或任何其他数字,我会调用一个函数。
这就是我所做的,但它只在第一次调用函数时,children.count为0,但忽略其他时间。
我没有在代码中的任何其他地方删除或添加任何精灵节点。
func dot(){
var dotTexture = SKTexture (imageNamed: "dot")
dotTexture.filteringMode = SKTextureFilteringMode.Nearest
var dot = SKSpriteNode(texture: dotTexture)
dot.setScale(0.5)
dot.position = CGPoint(x: self.frame.size.width * 0.5 , y: self.frame.size.height * 1.1)
dot.physicsBody = SKPhysicsBody (circleOfRadius: dot.size.height/2.0)
dot.physicsBody?.dynamic = true
dot.physicsBody?.allowsRotation = false
self.addChild(dot)
println("done")
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
if children.count == 0 {
dot()
println("dot")
}
}
答案 0 :(得分:1)
如果您在场景中执行此操作,则可以执行
if (self.children.count == x) {
yourFunction() //call your function
}
或
if (children.count == x) {
yourFunction() //call your function
}
回应你的评论:
这是一个在sprite kit中运行每一帧的更新方法。像这样使用它:
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
if (children.count == x) {
yourFunction() //call your function
}
}
答案 1 :(得分:1)
使用它:
if (self.children.count == someNumber) {
<#enter code here#>
}
其中一些数字是触发号或表达式。
Objective-C,使用:
if ([self children].count == someNumber) {
// enter code here
}
此外,它在哪里说&#34;在这里输入代码,&#34;打电话给你的功能并做你需要做的事。
答案 2 :(得分:0)
我想找出一个场景中的节点数量
使用此方法:
func nodeCount(scene:SKScene) -> Int {
return scene[".//*"].count
}
这将为您提供整个场景层次结构中所有节点的数量。