在Swift Sprite Kit中预加载纹理时如何防止白屏?

时间:2015-11-11 05:15:39

标签: swift sprite-kit

这是我在GameViewController()类文件的viewDidLoad()中的代码:

skView.presentScene(startScene)

SKTexture.preloadTextures(BGTextures, withCompletionHandler: { () -> Void in 
    print("SKTextures have loaded.")
})

由于视图在调用预加载纹理之前更改为startScene,因此在游戏启动时会显示白色背景,然后在加载纹理后显示正确的背景,这看起来很糟糕。

所以相反,我做了它,它只会在纹理加载时改变场景,但是,这会使整个应用程序在加载纹理时显示白色背景......这使得预加载纹理毫无意义;我不希望显示白色屏幕(我会在启动画面期间对此进行成像)。

如何防止显示此白色?

1 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点,一种是设置视图的backgroundColor(不是场景),如下所示:

self.view.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)

你会在展示场景之前这样做。

另一种方法是将启动画面图像添加到视图中。基本上,将启动画面拖放到情节提要编辑器中的视图上,并将约束(编辑器的右下角)添加到它,以确保它可以缩放您想要的范围。这将允许从启动画面,视图启动画面到游戏的无缝过渡。

我建议您选择presentScene()的完成处理程序中的preload,以便在加载纹理后显示游戏场景。