touchesBegan在一个节点上删除它

时间:2015-02-04 17:21:40

标签: swift sprite-kit skspritenode touchesbegan

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

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

怎么做?

谢谢你。

1 个答案:

答案 0 :(得分:0)

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

首先在添加它的地方设置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()
            }
        }

    }
}