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()
}
}
}
}
例如,我每秒钟在一个名为 "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()
}
}
}
}