Ios 什么场景?没有名为“的成员”;发电机“;
我添加了3个skspritenodes,如下所示:Ios 什么场景?没有名为“的成员”;发电机“;,ios,xcode,swift,skscene,Ios,Xcode,Swift,Skscene,我添加了3个skspritenodes,如下所示: 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.siz
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?没有名为“Generator”的成员
使用for函数删除节点的正确方法是什么
编辑:
我在以下行中尝试了此操作,但出现了错误:
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()
}
您可能希望查看以下类引用: SKNode: SKSpriteNode: 场景: 从这里可以看出两点:
- “它们都有相同的名称”:实际上,它们都没有名称(您没有设置name属性)李>
- “removeAllChildren(),它们会慢慢被移除”:如果您在场景中运行了此方法,它应该会起作用。但是我不明白为什么会这么慢,也许给我们你用过的代码(以及在哪里)
scene.children
有了这些,你可能想再试一次
我希望这有帮助。如果没有,请详细评论
编辑:
以self
为场景:
self.removeAllChildren()
或
是一样的
我对您所面临的速度缓慢的猜测是,您在willMoveFromView:
方法中调用了这个函数。我想您正在尝试加载同一场景,因此您可能不想这样做:在转到下一场景之前(即在使用presentScene
之前)删除它们,或者在转到下一场景之后(即在didMoveToView
内部)删除它们。但是,如果您在开始时正确设置了场景,您甚至不必这样做(否则我可能会错过一些东西)
self.removeAllChildren()
for node in self.children {
self.removeChildrenInArray([node])
}