【问题标题】:Present an SKScene from itself从自身呈现一个 SKScene
【发布时间】:2015-07-27 23:23:49
【问题描述】:

所以我试图弄清楚如何从自身呈现 SKScene,实际上是重新加载它。首先,我想问一下是否有更有效的重新加载场景的方法。我找不到,所以我想办法从另一个 SKScene 中呈现一个 SKScene。

在Glorious Internet 上搜索了一段时间后,我发现了这个(Presenting an SKScene from within another SKScene)问题。

这是我目前拥有的代码,灵感来自上述问题的答案中发布的代码:

let reveal = SKTransition.flipHorizontalWithDuration(0.5)
let scene = self.scene
self.view?.presentScene(scene, transition:reveal)

这最初不会产生错误,但是当我构建它并调用此操作(呈现场景)时,会出现 NSException 错误。

terminating with uncaught exception of type NSException

有没有人知道我可以有效地重新加载场景(从自身)的简单方法。如果没有,有人知道我如何轻松地呈现一个场景吗?

提前非常感谢!任何回应都非常感谢!

【问题讨论】:

  • 尝试添加这行代码let viewer = self.view as SKView! 然后在viewer.presentScene(scene, transition:reveal) 中调用它
  • 为什么要呈现自己的场景?你想展示同一个 SKScene 子类的另一个实例吗?

标签: ios swift sprite-kit


【解决方案1】:

在你发布的代码中,你已经写了:

let reveal = SKTransition.flipHorizontalWithDuration(0.5)
let scene = self.scene //<- This is causing your issue
self.view?.presentScene(scene, transition:reveal)

这个错误是因为你正在展示一个已经附加到一个 SKView 的场景。

你不能从它本身呈现一个场景。可能,您想呈现同一场景的另一个实例?

let reveal = SKTransition.flipHorizontalWithDuration(0.5)
let scene = GameScene(size: self.size) //Replace GameScene with current class name
self.view?.presentScene(scene, transition:reveal)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多