【发布时间】:2026-01-07 02:55:02
【问题描述】:
我添加了 3 个这样的 skspritenode:
var node = SKSpriteNode(imageNamed:"node1")
func addnode(){
node = SKSpriteNode(imageNamed:"node1")
node.position = CGPointMake(frame.size.width/3, frame.size.height/3)
node.size = CGSizeMake(frame.size.width/10, frame.size.height/10)
addChild(node)
node = SKSpriteNode(imageNamed:"node1")
node.position = CGPointMake(frame.size.width/5, frame.size.height/5)
node.size = CGSizeMake(frame.size.width/10, frame.size.height/10)
addChild(node)
node = SKSpriteNode(imageNamed:"node1")
node.position = CGPointMake(frame.size.width/2, frame.size.height/2)
node.size = CGSizeMake(frame.size.width/10, frame.size.height/10)
addChild(node)
}
(我创建了 25 个这样的节点,但为了便于解释,我做了 3 个)
现在,当我使用 removeAllChildren() 删除这些节点时,它们会被缓慢删除,因为它们都具有相同的名称,因此每个节点都删除了 1 个。 我想用“for”函数一次性删除它们。
我试过了:
let aa = levelnode as SKSpriteNode
for aa in scene{
levelnode.removeFromParent
}
但我收到此错误:SKScene?没有名为“生成器”的成员
用for函数删除节点的正确方法是什么?
编辑:
override func willMoveFromView(view: SKView) {
removeAllChildren()
}
我在以下行尝试了这个错误:
override func willMoveFromView(view: SKView) {
let aa = levelnode as SKSpriteNode
for levelnode in scene?.children{ // "$T4??" does not have a member named "Generator"
levelnode.removeFromparent
}
removeAllChildren()
}
【问题讨论】: