基本上我的游戏有MenuScene
和GameScene
。 MenuScene
首先显示在viewDidLoad
ViewController
函数中
override func viewDidLoad() {
super.viewDidLoad()
if let scene = 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 */
scene.scaleMode = .aspectFit
skView.presentScene(scene)
}
}
有一个简单的菜单屏幕,播放按钮可以直接传输到游戏中。以下是touchesBegan
方法中的if-block:
if node == playButton {
playButton.size.height=playButton.size.height+30
playButton.size.width=playButton.size.height+30
if view != nil {
let transition:SKTransition = SKTransition.fade(withDuration: 1)
let scene:SKScene = GameScene(size: self.size)
self.view?.presentScene(scene, transition: transition)
}
}
但是当它转换到我的GameScene
时,我的GameScene
的sks文件无法呈现?我的GameScene.swift
中连接到sks
文件中的精灵的所有变量都丢失了。我该如何解决这个问题?
答案 0 :(得分:4)
尝试:let scene = SKScene(fileNamed: "GameScene")
let scene:SKScene = GameScene(size: self.size)
表示您正在加载GameScene
类型的实例。它不会加载任何文件。
SKScene(fileNamed: "GameScene")
会加载一个文件,只需确保检查sks文件中的自定义类字段是否为GameScene