【问题标题】:touchesBegan on a node to delete ittouchesBegan 在一个节点上删除它
【发布时间】:2026-02-06 14:05:02
【问题描述】:
例如,我在名为“generateNode”的函数中每秒生成一个 SKSpriteNode,我想在 touchesBegin 函数中调用它来检测用户何时触摸它,如果用户触摸它,则删除该节点.
我试图在这个函数中调用节点,但是不可能,Xcode在这个函数中没有检测到它。
怎么做?
谢谢。
【问题讨论】:
标签:
swift
sprite-kit
skspritenode
touchesbegan
【解决方案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()
}
}
}
}