2012-09-29 46 views
1

我在Cocos2d中有一个主场景(游戏场景)和一个去“配置”场景的按钮。当用户点击主场景中的配置按钮时,我使用pushScene进入“配置”场景。我使用pushScene的原因是允许用户恢复他离开的游戏。请问replaceScene只替换当前场景还是替换Cocos2d中的所有场景

在“配置”场景中有两个选项:“取消”和“确定”。如果用户点击“取消”,我使用popScene并且游戏继续它离开的地方。如果用户点击“确定”,则使用replaceScene,因为我希望游戏从新配置开始。因此,当用户点击“确定”时,我知道“配置”场景被新的游戏场景取代,但旧游戏场景是否也被替换了?否则,我是否正确地做事,还是应该以另一种方式让游戏场景知道是应该恢复还是重新启动。

我想确保我不会通过积累未更换的场景来泄漏内存。

回答

2

replaceScene方法完成它所说的。它取代了当前的场景。如果您将10个场景推到另一个场景中,它将取代第10个场景,并保留所有之前的场景。

这是我不推荐使用pushScene的原因之一。很容易忘记场景可能会比被弹出更多的情况。另一个原因是popScene不能通过转换动画。

顺便说一句,如果你在新更换的场景pushScene后做replaceScene,然后popScene您可以轻松地测试此行为。你会看到旧的场景弹出。通常情况下,如果popScene只有一个场景在堆栈中,它会发出一个断言。

+0

谢谢。在这种情况下,我会尽量不使用pushScene因为我想用一个过渡动画它来创建功能。对于如何恢复游戏或重新启动,您有任何建议,具体取决于用户的操作? – Andres