Swift Sprite工具包枚举要删除的节点失败

Swift Sprite工具包枚举要删除的节点失败,swift,sprite-kit,Swift,Sprite Kit,我尝试使用节点的名称枚举节点,检查它们的y位置,如果值小于某个数字,则对它们运行特定的函数。我正在枚举的节点是另一个节点(称为块节点)的一部分。我这样设置我的游戏是因为在整个块父节点上应用操作比在每个块上应用操作更方便。这是我的枚举代码: func chechForPassing(){ var passedBlocks: [SKSpriteNode] = [] enumerateChildNodesWithName("1") { node, _ in let no

我尝试使用节点的名称枚举节点,检查它们的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)
        }

    }
块节点是SKNode。有人知道如何解决这个小问题吗


谢谢

如果我的操作正确,则永远不会调用枚举块。这可能是因为子节点名称不是“1”,或者您没有在正确的节点上调用EnumerateChildNodeWithName


现在,您正在使用自己的名字调用EnumerateChildrenodes。这些节点是添加到self还是添加到另一个节点?如果它们在另一个节点上,则在该节点上调用enumerateChildNodesWithName。

此处没有足够的信息进行调试。“fadeEnRemove”是做什么的?另外,我不明白为什么要在枚举中嵌套一个带有passedBlocks的循环。它似乎应该在外面的问题是不褪色功能,因为我没有得到打印在我的控制台。我之所以使用此列表,是因为有可能在同一更新下有多个块属于此类别。fade函数只是一个以sprite为参数并运行remove操作(SKAction.removeFromParent)的函数
    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)

}