Sprite套件枚举节点以删除失败



我正在尝试使用其名称枚举节点,检查其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。

最新更新