枚举要删除的节点的Sprite Kit失败

时间:2015-05-04 22:00:06

标签: swift sprite-kit

我试图使用他们的名字枚举节点,检查他们的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 个答案:

答案 0 :(得分:0)

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

现在你在self上调用enumerateChildNodesWithName。这些节点是添加到自身还是添加到另一个节点?如果它们在另一个节点上,则在该节点上调用enumerateChildNodesWithName。