清除 SKScene 以开始新游戏

Clearing a SKScene to start a new game

在我的游戏结束后,我有一个名为 play again 的按钮,但是当它 运行 时,它会抛出错误 Attemped to add a SKNode which already has a parent。我的问题是我可以重置或解除分配 SKScene 以使其就像一个新的石板,就像应用程序从未 运行 一样吗?

您可以在您的 SKScene 中使用 [self removeAllChildren]; 来删除所有子节点。

其他对象,如数组、字符串等...您将不得不一对一处理。

您可以在添加之前检查节点是否已经有父节点,方法是:

if(myNode.parent == nil)
    [self addChild:myNode];

假设代码正在你的场景中执行我想你想要的是这个..

MyScene *newScene = [[MyScene alloc]initWithSize:self.size];
[self.view presentScene:newScene];

其中 MyScene 是 SKScene 的子类。

希望这就是您要找的。