如何更改通过gameviewcontroller呈现的第一个SKscene

时间:2016-06-12 20:41:40

标签: xcode swift sprite-kit viewcontroller

error message

所以我在我的swift项目中创建了几个不同的SKScenes,我在一些教程中看到你不必将gameScene.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)
    }
  }
}

我试图将GameScene SKS更改为我的MainMenu SKS,但我一直在收到错误,我肯定错过了一些东西。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

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)
}
}
} 

因此,不要将GameScene作为您的初始场景,只需创建MenuScene实例并将其显示在viewDidLoad中。请注意,由于以下行,您必须创建相应的MenuScene.sks文件:

If let newScene = MenuScene(fileNamed:"MenuScene.sks"){ //...}

因为您是从文件加载它。

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

答案 1 :(得分:0)

只需随时调用该代码即可。例如,您可以使用按钮连接它。

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

答案 2 :(得分:0)

这是我在Sprite Kit项目中使用的。这是我以前,我不记得它背后的任何推理。

if let scene = DesiredScene.unarchiveFromFile("DesiredScene") as? DesiredScene

也许其他人可以阐明最新情况