EnumerateChildNodesWithName,似乎无法删除节点

EnumerateChildNodesWithName, Can't seem to Remove nodes

我正在尝试在某些节点到达某个 x 位置后从父节点中删除它们。我遇到的问题是父节点正在改变 x 位置,但子节点没有改变父节点内的 x 位置(但显然是与父节点一起移动),所以当我输入 if node.position.x < 300 时。 . . (删除节点),没有任何反应。我尝试了下面的代码,但这只能工作一次,然后不会再次删除节点,我不是 100% 确定为什么它停止工作。

func cleanUp() {
    let positionX = nodeBase.position.x
    nodeBase.enumerateChildNodesWithName("segment", usingBlock: {
        node, stop in
        if node.position.x - positionX < 300 {
            node.removeFromParent()
        }
    })
}

谁能看出我的代码哪里出了问题,或者您能指出正确的方向吗?

尝试以下操作:

nodeBase.enumerateChildNodesWithName("segment") { node, _ in
    if !self.intersectsNode(node) {
        node.removeFromParent()
    }
 }

intersectsNode returns truenodeSKScene 的范围内。因此,当 intersectsNode returns false 您知道该节点在屏幕外并且您可以删除该节点。