在Sprite Kit中如何在场景之间导航?

6

假设我从一个名为initialScene的场景开始。这个场景包含几个按钮。当用户在此场景中点击A按钮时,我将呈现sceneA。所以我的代码看起来像这样:

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

我的第一个问题是,当从initialScene呈现sceneA实例时,它会被叠加在initialScene实例之上还是替换它?当呈现新场景时,initialScene的实例是否在内存中被释放?

我之所以问这个问题,是因为sceneA将有一个“返回”按钮,当用户点击该按钮时,会返回到初始场景。我能否在sceneA中创建initialScene的新实例并呈现它,或者会导致多个相同场景的实例叠加在一起?基本上,我可以在sceneA中只这样做吗:

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

还有其他更好的方法吗?如果有任何需要我进一步澄清的地方,请告诉我。

1个回答

5
Sprite Kit使场景之间的转换变得容易。您可以将场景保留下来,或在它们之间进行转换时丢弃它们。在这个例子中,您创建了一个第二个场景类来学习一些其他的游戏行为。当“Hello, World!”文本从屏幕上消失时,代码会创建一个新的场景并过渡到它。Hello场景在转换后被丢弃。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接