touchesBegan 在一个节点上删除它

touchesBegan on a node to delete it

例如,我每秒钟在一个名为 "generateNode" 的函数中生成一个 SKSpriteNode,我想在 touchesBegin 函数中调用它来检测用户何时触摸它,如果用户触摸它,节点被删除。

我试图在这个函数中调用节点,但是不可能,Xcode在这个函数中没有检测到它。

怎么做?

谢谢。

您可以通过以下方式删除特定节点。

首先在添加的地方设置node.name属性

func generateNode() {
    // your node creation code
    node.name = "generatedNode"
    //add your node.
}

然后在touchesBegan中,如果节点的名字是你设置的名字,你就可以移除被触摸的节点

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

    let touch = touches.anyObject() as UITouch?
    if let location = touch?.locationInNode(self)
    {
        for node in self.nodesAtPoint(location)
        {
            if node.name == "generatedNode"
            {
                node.removeFromParent()
            }
        }

    }
}