【问题标题】:Adding an SKScene to a UIViewController?将 SKScene 添加到 UIViewController?
【发布时间】:2015-10-15 19:08:16
【问题描述】:

我刚刚在界面生成器中创建了一个新的UIViewController。它与UITableViewController(单元格)相连。我现在想在这个UIViewController 中使用SKScene。这是如何实现的?

顺便说一句……

如果SKScene 占据了整个UIViewController.view,您可以在场景顶部覆盖UIKit 对象吗?

或者最好在UIViewController.view 内部创建一个单独的UIView 来保存SKScene,然后围绕这个单独的UIView 布局UIKit 对象,并让默认的UIViewController.view 充当所有这些元素的容器?如果采用这种方式,理论上讲这些UIKit对象可以被SKScene访问吗?

【问题讨论】:

标签: ios swift uiviewcontroller sprite-kit skscene


【解决方案1】:
  1. 将 SKView 添加到您的 viewController。
  2. 将 SKScene 添加到您的 SKView。

您可以从您的 SKScene 中覆盖 UIKit 项目。这就是我在游戏中使用集合和表格视图的方式。但是,它们需要作为子视图添加到持有您的 SKScene 的 SKView 上。

SKScene has a view property that should hold a reference 到它所包含的 SKView。所以只需要做这样的事情。

class MyScene: SKScene {
    var someView: UIView

    override func didMoveToView(view: SKView) {
        someView = //setup view here
        view.addSubview(someView)
    }
}

然后在这个场景中,你可以在任何你喜欢的地方访问你的 UIKit 对象。

【讨论】:

    【解决方案2】:

    如果您创建一个新的 Spritekit 应用程序,它会根据您的需要设置视图控制器。您需要做的就是将该视图控制器复制到您的项目中,应用 segue,然后您就可以很好地使用 skscene。

    回答你关于 UIKit 的问题,是的,你可以将 UIKit 元素放在 SKScene 之上,当然它只会被攻击到 skscene 所在的视图,因此场景本身不能直接与它们交互,您需要实现某种消息传递系统,以便两者能够通信。

    【讨论】:

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