我正在尝试为我的Spritekit游戏实现主菜单,但每当我尝试呈现场景时,我都会得到一个空白的灰色屏幕。这是现在的代码,它呈现游戏本身而不是菜单:
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.showsDrawCount = true
skView.ignoresSiblingOrder = true
scene.scaleMode = SKSceneScaleMode.AspectFill
skView.presentScene(scene)
}
}
我是新手,我不知道该怎么做所以我尝试用菜单场景取代GameScene,这给了我灰色的屏幕。任何帮助将不胜感激。
答案 0 :(得分:1)
使用此代码加载仅在代码中创建而不在场景编辑器中创建的SKScene文件
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
if let skView = self.view as? SKView {
if skView.scene == nil {
let scene = MenuScene(size: skView.bounds.size)
skView.showsFPS = false
skView.showsNodeCount = true
skView.showsPhysics = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .aspectFill
skView.presentScene(scene)
}
}
}
然后在你的MenuScene文件中你需要一个init func
init(size: CGSize) {
super.init(size: size)
name = "menuScene"
}