我的主菜单和我的游戏场景之间存在明显的延迟。如何在显示某种加载屏幕时在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
}