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 制作一个按钮