【问题标题】:Swift: Presenting a Scene over another SceneSwift:在另一个场景上呈现一个场景
【发布时间】:2016-02-03 21:51:08
【问题描述】:

我找不到这个答案。如果我有一个设置场景,我想在另一个场景上向下滑动,我该如何在不移除原始场景的情况下执行此操作。我希望能够将设置场景转换到游戏的顶部,当他们单击“返回”时,设置场景会向上滚动并消失。

【问题讨论】:

  • 如何区分是否要摆脱之前的场景?我可以想象想要摆脱最后一个场景,以免阻塞记忆。
  • 只需使用“模态呈现,全屏,垂直覆盖”segue
  • 如果这三个用于显示而不释放最后一个视图,如果我想释放它,我会使用哪个?例如,当玩家失败时,切换到游戏的新视图以重新开始。
  • 您通常会回到游戏场景之前的场景,然后再回到新的游戏场景。你通常有一种视图控制器的“堆栈”,新的在顶部,旧的,旧的,仍然在堆栈的内存中。对于游戏,您也可以只保留场景并重置游戏状态
  • 不知道为什么你在这里混淆了这个家伙,我们在谈论场景,而不是视图控制器

标签: ios swift sprite-kit scene


【解决方案1】:

不知道为什么每个人都在这里谈论视图控制器,但实现您想要做的最简单的方法并不涉及多个场景。

在 SpriteKit 中,一次只能有 1 个场景。

那么你要做的是,你有一个用于设置场景的 SKNode,以及一个用于主要内容的 SKNode。

将所有设置节点放入此设置 SKNode 中,就像在场景中一样。

将所有主要内容放入主 SKNode。

将主节点添加到您的场景以获得正常的游戏功能。

为设置节点指定一个高 z 位置,使其位于顶部。

然后当你需要展示设置节点时,你将它的位置设置为屏幕高度 + SKNodes 高度的 1/2(除非你改变了锚点)。

如果需要,暂停主节点。

在设置节点上使用 SKAction 将其向下移动到屏幕上您需要移动的位置。 (SKAction.moveToX(x:y:) 应该适合你)。

然后当你需要离开的时候,只需调用反向的SKAction,取消暂停主节点即可。

【讨论】:

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