SpriteKit - 当游戏在后台初始化时显示加载屏幕

时间:2017-12-06 21:09:29

标签: ios swift sprite-kit grand-central-dispatch

我的主菜单和我的游戏场景之间存在明显的延迟。如何在显示某种加载屏幕时在didMove(to view: SKView)中运行所有初始化代码,然后在完成后显示游戏?我真的不需要代码作为答案,但更多的是我可以使用的结构或方法。

我猜我会做的是从菜单到游戏场景的正常过渡,在后台线程中运行初始化代码时,在我的游戏场景中呈现某种加载图像?然后我需要一些方法来检查后台线程何时完成运行,这样我就可以删除加载图像并呈现游戏。

这听起来不错吗?另外我应该考虑在后台执行初始化并检查它是否已完成?

MenuScene:

 // nextScene is GameScene here
self.scene?.view?.presentScene(nextScene!, transition: SKTransition.crossFade(withDuration: 1.0))

GameScene:

override func didMove(to view: SKView) {

   // A whole lot of initialization code that causes lag before the user can start interacting with the game

}

我想做什么:

GameScene:

override func didMove(to view: SKView) {

   // Present Loading Screen

   // Do initialization in a background thread
   // Once it's done, remove loading screen

}

0 个答案:

没有答案