シーンが表示される前に、SKView の背景色 (灰色) が一時的に表示されるという問題があります。
ストーリーボード エディターとコントローラー ( self.skView.backgroundColor = [SKColor blueColor]
) の両方で手動で設定しようとしましたが、グレーのままです。これはオーバーライドできる属性ではありませんか?
更新 #1
何が起こっているかについての簡単な説明は次のとおりです。
viewDidLoad
が呼び出されskView
、灰色の背景で画面に表示されます (skView.scene
はまだ設定されていません)。- ゲームのすべてのアセットを読み込みます (約 1 秒かかります)。この時点で、灰色の背景が表示されます。
- アセットがロードされたら、シーンをロードして表示します (灰色の画面がシーンのコンテンツに置き換えられます)。
ViewController
- (void)viewDidLoad
{
[self.activityIndicator startAnimating];
[self authenticatePlayer];
self.skView.backgroundColor = [SKColor blueColor];
// During this time the grey screen is visible as the assets are being loaded and take ~1 second
// self.skView.scene is NULL here so I cannot set the backgroundColor...
[GamePlayScene loadSceneAssetsWithCompletionHandler:^{
[self.activityIndicator stopAnimating];
self.activityIndicator.hidden = YES;
CGSize viewSize = self.skView.bounds.size;
self.gamePlayScene = [[GamePlayScene alloc] initWithSize:viewSize];
self.adView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.skView presentScene:self.gamePlayScene];
}];
...