I have an issue where my SKView's background color (grey) is briefly being displayed before the scene is presented.
I manually attempted to set it, both via the Storyboard editor and in my controller (self.skView.backgroundColor = [SKColor blueColor]
) but it remains grey. Is this not an attribute that can be overridden?
Update #1
Here's a little explanation as to what happening:
viewDidLoad
is called and skView
is presented on the screen w/ a grey background (skView.scene
is not set yet).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];
}];
...
I'm afraid you'll either have to present your scene with the most basic setup done (like setting backgroundColor) and then load the rest, or present a "loading" scene until the gameplay scene loads, then replace it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With