这是我在GameViewController()类文件的viewDidLoad()中的代码:
skView.presentScene(startScene)
SKTexture.preloadTextures(BGTextures, withCompletionHandler: { () -> Void in
print("SKTextures have loaded.")
})
由于视图在调用预加载纹理之前更改为startScene,因此在游戏启动时会显示白色背景,然后在加载纹理后显示正确的背景,这看起来很糟糕。
所以相反,我做了它,它只会在纹理加载时改变场景,但是,这会使整个应用程序在加载纹理时显示白色背景......这使得预加载纹理毫无意义;我不希望显示白色屏幕(我会在启动画面期间对此进行成像)。
如何防止显示此白色?
答案 0 :(得分:2)
有两种方法可以做到这一点,一种是设置视图的backgroundColor
(不是场景),如下所示:
self.view.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)
你会在展示场景之前这样做。
另一种方法是将启动画面图像添加到视图中。基本上,将启动画面拖放到情节提要编辑器中的视图上,并将约束(编辑器的右下角)添加到它,以确保它可以缩放您想要的范围。这将允许从启动画面,视图启动画面到游戏的无缝过渡。
我建议您选择presentScene()
的完成处理程序中的preload
,以便在加载纹理后显示游戏场景。