touchesBegan 在一个节点上删除它

Posted

技术标签:

【中文标题】touchesBegan 在一个节点上删除它【英文标题】:touchesBegan on a node to delete it 【发布时间】:2015-02-04 17:21:39 【问题描述】:

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

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

怎么做?

谢谢。

【问题讨论】:

到目前为止你有没有做过的代码? 【参考方案1】:

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

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

    

【讨论】:

以上是关于touchesBegan 在一个节点上删除它的主要内容,如果未能解决你的问题,请参考以下文章

touchesBegan Swift 2 自定义 SpriteKit 节点

uiview 的一部分不会调用 touchesBegan 以在 uisplitview 上查看

Swift:Spritekit 中的多个场景,从第二个和第一个场景的不同 Sprite 节点类型调用 touchesBegan

如何在 Sprite 套件中为 touchesBegan 制作一个按钮

pressGestureRecognizer and touchesBegan

你可以在 touchesBegan 之后强制取消触摸事件吗?