未使用 GameScene.sks 文件



我正在学习 Swift,我从 SpriteKit 开始。我正在尝试创建一个简单的游戏,并收到了有关SpriteKit如何工作的问题。我用开始按钮制作了一个新场景(MenuScene),我编辑了GameViewController.swift以首先运行MenuScene。在MenuScene,我正在移动到与GameScene.sks相关的GameScene。当我运行应用程序时,它会"忽略"GameScene.sks并且不显示那里的任何内容。当我编辑GameViewController.swift以首先运行GameScene时,我可以看到我添加到GameScene中的所有内容。为什么会这样?希望我足够清楚,提前感谢!

可能

不是您正在寻找的确切答案,但它会起作用(除非我误解了您的问题)。我通常倾向于发现从其.swift文件加载场景比从.sks文件(我根本不使用)加载场景更好。一个简单的方法是:

func loadGameScene() {
    let scene = GameScene(size: view.bounds.size)
    scene.scaleMode = .resizeFill
    let transitionType = SKTransition.flipHorizontal(withDuration: 1.0)
    let skView1 = view as! SKView
    skView1.ignoresSiblingOrder = true
    skView1.presentScene(scene,transition: transitionType)
}

您可以将此函数放入 GameViewController 中,并在单击该按钮时从 GameViewController 调用它。如果您确实想使用.sks文件,只需编辑此函数即可使用.sks。

如果你不知道如何从另一个SKScene类(MenuScene)调用该函数,这是你这样做的:

在场景中,创建一个变量viewController如下所示:

class MenuScene: SKScene{
    var viewController: GameViewController!

这将指向您的游戏视图控制器。现在,在您的 GameViewController 中,在呈现 MenuScene 后,添加:

scene.viewController = self

现在,在 MenuScene 中,您只需调用viewController.loadGameScene()即可切换场景

最新更新