Xcode 如何更改通过gameviewcontroller显示的第一个场景

Xcode 如何更改通过gameviewcontroller显示的第一个场景,xcode,swift,sprite-kit,viewcontroller,Xcode,Swift,Sprite Kit,Viewcontroller,因此,我在我的swift项目中创建了两个不同的SKScene,我在一些教程中看到,您不必启动GameSecene.swift作为您的第一个场景,但是我找不到一个教程来解释如何启动GameSecene.swift import UIKit import SpriteKit class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() if let sc

因此,我在我的swift项目中创建了两个不同的SKScene,我在一些教程中看到,您不必启动GameSecene.swift作为您的第一个场景,但是我找不到一个教程来解释如何启动GameSecene.swift

import UIKit
import SpriteKit

class GameViewController: UIViewController {
override func viewDidLoad() {
    super.viewDidLoad()

    if let scene = GameScene(fileNamed:"GameScene") {
        // Configure the view.
        let skView = self.view as! SKView
        skView.showsFPS = true
        skView.showsNodeCount = true

        /* Sprite Kit applies additional optimizations to improve 
        rendering performance */
        skView.ignoresSiblingOrder = true

        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill

        skView.presentScene(scene)
    }
  }
}

我正在尝试将游戏场景SKS更改为我的主菜单SKS,但我不断出错,我肯定错过了一些东西。有人能帮我吗?

只要你想什么时候打电话就行了。例如,您可以使用按钮将其连接

@IBAction func playGame(sender: AnyObject) {
    if let scene = GameScene(fileNamed:"GameScene") {
        ...
    }
}

这是我在一个精灵工具包项目中使用的。那是我很久以前的事了,我不记得背后的任何理由


如果让scene=DesiredScene.unarchiveFromFile(“DesiredScene”)作为?理想场景

也许其他人可以解释发生了什么

import UIKit
import SpriteKit

class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

if let newScene = MenuScene(fileNamed:"MenuScene") {
    // Configure the view.
    let skView = self.view as! SKView
    skView.showsFPS = true
    skView.showsNodeCount = true

    /* Sprite Kit applies additional optimizations to improve 
    rendering performance */
    skView.ignoresSiblingOrder = true

    /* Set the scale mode to scale to fit the window */
    newScene.scaleMode = .AspectFill

    skView.presentScene(newScene)
}
}
} 
因此,不要将GameSecene作为初始场景,只需创建MenuScene实例并将其显示在
viewDidLoad
中即可。请注意,由于这一行,您必须创建共同响应的MenuScene.sks文件:

如果让newScene=MenuScene(文件名为:“MenuScene.sks”){
//…}

因为您正在从文件加载它


此外,要转换到另一个场景,请使用以下模式,例如在Touches中开始创建新场景,可以选择创建SKTransition并呈现新场景。

我尝试了此方法,并创建了一个单独的mainMenu.sks文件,但我上传的屏幕截图“if let line”上仍然出现错误,它希望我将文件名更改为coder,但是如果我这样做了,我会得到另一个错误,上面写着“无法将字符串值转换为NS编码器”,我会得到一个错误@whirwind根据你上传的屏幕截图,你必须删除显示游戏场景的代码,只留下显示主菜单场景的代码。删除行:if let scene=GameSecene(文件名为:“GameSecene”){//配置视图。let skView=self.view as!skView…skView.presentScene(场景)}