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

时间:2017-02-08 11:21:47

标签: swift sprite-kit

我一直在开发一款由XCode创建的单一默认GameScene中完成的游戏。现在我想添加更多屏幕,包括在GameScene之前显示的标题屏幕和“Game Over”场景。场景中的游戏从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 个答案:

答案 0 :(得分:1)

是 - 使用“fileNamed”初始化场景是指.sks文件,因此您应该创建一个。

在这行代码中:

let scene = Titles(fileNamed:"Titles")

您正在创建一个名为scene的{​​{1}}类型的新场景对象。这应该与swift文件中的类名相匹配,即在Titles中你应该具有:

titles.swift

class Titles: SKScene { :只是fileNamed的众多初始化程序之一,它指定要加载的.sks文件。如果要以编程方式将所有内容放在场景中,请使用:

SKSCene

这个问题及其接受的答案可能有助于解决您可能遇到的任何潜在问题 - How to add an .sks files to existing Swift/Sprite-Kit project?