我正在创建一个游戏。当游戏结束时,我会显示一个按钮“再玩一次”,理想情况下,它应该只是重新加载场景。
var viewSize = currentScene.view?.bounds.size
let sceneG = Level1(size: viewSize!)
currentScene.view?.presentScene(sceneG)
但不幸的是,我收到了这个错误:
Attemped to add a SKNode which already has a parent:
因为有些节点已经存在于场景中,无法再次添加。
有没有办法在再次呈现场景之前重新加载场景或删除所有节点?
谢谢
根据要求,这是 Level1 类:
import SpriteKit
import CoreMotion
class Level1: SKScene {
override func didMoveToView(view: SKView) {
//creation of nodes etc
}
}
最佳答案
如果您正在寻找一种方法来删除场景的所有子项,请使用此 func removeAll Children()
。
查看SKNode使用节点树下的文档。
关于ios - 我怎样才能重新启动 SKScene?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29559786/