Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Navigating between scenes in Sprite Kit?

Let's say I begin with a scene initialScene. This scene contains a few buttons. When the user taps Button A in this scene, I will present sceneA. So my code would look like this:

sceneA* scene = [[sceneA alloc] init];
[self.scene.view presentScene: scene];

My first question is, when an instance of sceneA is presented from initialScene, is it stacked on top of the initialScene instance or does it replace it? Does the instance of initialScene get deallocated in memory when a new scene is presented ?

I ask this because sceneA will have a Back Button which, when tapped, returns the user to the initial scene. Can I just create a new instance of initialScene within sceneA and present it, or will that result in multiple instances of the same scenes stacked on top of each other? Basically, can I just do this in sceneA?:

if(...) {   //if user taps back button
    initialScene* iniScene = [[initialScene alloc] init];
    [self.scene.view presentScene: iniScene];
}

Or is there a better way to do this? Please let me know if there is any way I can clarify this further.

like image 613
aanrv Avatar asked Jul 14 '14 02:07

aanrv


1 Answers

Sprite Kit makes it easy to transition between scenes. You can either keep scenes around persistently, or dispose of them when you transition between them. In this example, you create a second scene class to learn some other game behaviors. When the “Hello, World!” text disappears from the screen, the code creates a new scene and transitions to it. The Hello scene is discarded after the transition.

Sprite Kit Programming Guide

https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/GettingStarted/GettingStarted.html#//apple_ref/doc/uid/TP40013043-CH2-SW10

like image 93
Zelko Avatar answered Oct 06 '22 19:10

Zelko