所以我在我的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,但我一直在收到错误,我肯定错过了一些东西。任何人都可以帮助我吗?
答案 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
也许其他人可以阐明最新情况