Xcode 如何更改通过gameviewcontroller显示的第一个场景
因此,我在我的swift项目中创建了两个不同的SKScene,我在一些教程中看到,您不必启动GameSecene.swift作为您的第一个场景,但是我找不到一个教程来解释如何启动GameSecene.swiftXcode 如何更改通过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
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(场景)}