我正在尝试使用其名称枚举节点,检查其Y位置,如果值低于某些数字,则在其上运行某些功能。我枚举的节点是其他节点的一部分,称为块节点。我以这种方式设置游戏,因为在整个块上,而不是在每个块上应用操作更方便。这是我枚举的代码:
func chechForPassing(){
var passedBlocks: [SKSpriteNode] = []
enumerateChildNodesWithName("1") { node, _ in
let node = node as! SKSpriteNode
if (node.position.y <= self.frame.size.height*0.3) {
passedBlocks.append(node)
println("1")
}
for node in passedBlocks {
self.fadeEnRemove(node)
}
}
fadeenremove只是我写的函数。打印用于调试目的。这就是我设置块的方式:
func block(x: CGFloat, y: CGFloat) {
var block = SKSpriteNode(imageNamed: "obsticle")
kratkowski.size = CGSizeMake(block.frame.size.width*scaleFactor, block.frame.size.height*scaleFactor)
block.position = CGPointMake(x, y)
block.name = "1"
blocksNode!.addChild(block)
}
和块节点是sknode。有人知道如何解决这个小问题吗?
谢谢!
如果我正确关注,则永远不会调用枚举块。这可能是因为儿童节点名称不是" 1",或者您没有在正确的节点上调用enumeratechildnodeswithname。
现在,您正在自行上调用enumeratechildnodeswithname。这些节点是否添加到自我中,还是将它们添加到另一个节点中?如果它们在另一个节点上,请改用该节点上的enumeratechildNodesWithName。