ios - 我怎样才能重新启动 SKScene?

标签 ios swift sprite-kit skscene

我正在创建一个游戏。当游戏结束时,我会显示一个按钮“再玩一次”,理想情况下,它应该只是重新加载场景。

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/

相关文章:

ios - 如何确定哪个 UIView super View 导致 subview 具有 userInteractionEnabled = NO?

Swift 2.0 Realm 库未加载

Swift 中委托(delegate)的 iOS 文档?

ios - UIProgressView setProgress 动画困惑

ios - 将 NSNotificationCenter 与 SkScene 一起使用到 UIViewController

ios - 更改仍可在界面构建器/ Storyboard中覆盖的默认属性的默认值

ios - UIPageViewController 不显示点

ios - Spritekit (Swift) 是否允许使用两个不同的相机节点?

ios - 在不损失质量的情况下调整 SKSpriteNode 的大小

iphone - UIGraphicsGetImageFromCurrentImageContext返回意外的nil