如何更改启动时显示的默认 SKScene
Posted
技术标签:
【中文标题】如何更改启动时显示的默认 SKScene【英文标题】:How to change the default SKScene that displays on startup 【发布时间】:2017-02-08 11:21:46 【问题描述】:我一直在开发一款在 XCode 创建的单一默认 GameScene 中完成的游戏。现在我想添加更多屏幕,包括在 GameScene 之前显示的标题屏幕和“游戏结束”场景。游戏结束场景从 GameScene 转换回来并且工作正常,但尽管更改了 GameViewController.swift 中的代码,但我无法显示标题屏幕:
class GameViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//Original default code:
//if let scene = GameScene(fileNamed:"GameScene")
//modified code
if let scene = Titles(fileNamed:"Titles")
//<...more code...>
应用程序仍在运行,但只是显示一个空白屏幕。我注意到 GameScene 文件也有一个 GameScene.sks 我认为它是场景内容的图形表示。即使以编程方式添加场景内容,我是否需要创建另一个 .sks 或将其链接到新的默认场景。
我可以简单地将所有代码从 GameScene 移动到新的 SKScene 并使用 GameScene 作为标题,但我很好奇这个问题以及如何解决它。有什么想法吗?
非常感谢, 千瓦
【问题讨论】:
【参考方案1】:是的 - 使用 'fileNamed
' 初始化场景是指 .sks 文件,因此您应该创建一个。
在这行代码中:
let scene = Titles(fileNamed:"Titles")
您将创建一个名为scene
的新场景对象,类型为Titles
。这应该与您的 swift 文件中的类名相匹配,即在 titles.swift
中您应该有:
class Titles: SKScene
fileNamed
: 只是SKSCene
的众多初始化程序之一,它指定了要加载的 .sks 文件。如果您想以编程方式将所有内容放置在您的场景中,或许可以使用:
let scene = Titles(size: CGSize(width: 1536, height: 2048))
这个问题及其已被接受的答案可能有助于解决您可能遇到的任何潜在问题 - How to add an .sks files to existing Swift/Sprite-Kit project?
【讨论】:
以上是关于如何更改启动时显示的默认 SKScene的主要内容,如果未能解决你的问题,请参考以下文章