GameViewController.swift 像控制器,GameScenes.swift 像视图(Swift 游戏)吗?

Posted

技术标签:

【中文标题】GameViewController.swift 像控制器,GameScenes.swift 像视图(Swift 游戏)吗?【英文标题】:Is GameViewController.swift like the controller and GameScenes.swift like the view (Swift games)? 【发布时间】:2015-03-02 22:19:51 【问题描述】:

当使用 Swift 在 Xcode 中创建新游戏时,模板会创建一个 GameViewController.swift 文件和一个 GameScenes.swift 文件。考虑这些文件的用途的正确方法是前者(GameViewController)就像控制器,而GameScenes就像视图?

如果属实,为什么有些教程会显示在 GameScenes 而不是 GameViewController 中实现手势识别器(例如,点击、滑动)?

【问题讨论】:

【参考方案1】:

是的,你可以这样看。

当您开始一个新的 SpriteKit 项目时,只需检查示例代码。如果您打开GameViewController.swift 文件,您会在viewDidLoad 方法中看到以下行:

let skView = self.view as SKView
....
skView.presentScene(scene)

在这里您可以看到问题的答案。 UIViewController 中的视图被转换为 SKView 并呈现 GameScene。所以步骤是这样的:

UIViewController --> View --> GameScene

但是关于教程。这取决于开发人员如何处理。如果您将其与例如extension 进行比较。您可以编写一个 util 文件,在其中放入所有内容、您想要重复使用的内容,或者直接将其写入您的 GameScene 文件中。当然,最好为它创建一个自己的文件。但是很多教程只是想把所有东西都放在一个地方,这样初学者就更容易理解等等。

但通常在 UIViewController 中编写它要复杂得多。例如,如果您尝试使用GestureRecognizer

但是,如果您查看诸如 raywenderlich.com 之类的教程,您会发现这些教程被很好地分割了。(在最终项目中)。

【讨论】:

以上是关于GameViewController.swift 像控制器,GameScenes.swift 像视图(Swift 游戏)吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift 使 SKScene 填满整个屏幕

Swift,SpriteKit:如何保存场景的整个进度

从 GameScene 转到 viewController Swift 3

在 Swift SpriteKit 中禁用节点和 FPS 标签

从另一个文件中的 SKScene 中删除 UIView

如何更改启动时显示的默认 SKScene