6

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

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

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

我问这个是因为sceneA会有一个后退按钮,当点击它时,用户会返回到初始场景。我可以只创建一个 inside 的新实例initialScenesceneA呈现它,还是会导致相同场景的多个实例堆叠在一起?基本上,我可以这样做sceneA吗?:

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

还是有更好的方法来做到这一点?请让我知道是否有任何方法可以进一步澄清这一点。

4

1 回答 1

5

Sprite Kit 使场景之间的转换变得容易。您可以永久保留场景,也可以在它们之间转换时丢弃它们。在此示例中,您创建了第二个场景类来学习其他一些游戏行为。当“你好,世界!” 文本从屏幕上消失,代码创建一个新场景并过渡到它。Hello 场景在转换后被丢弃。

Sprite Kit 编程指南

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

于 2014-07-14T03:18:39.420 回答