libgdx Stage.dispose()不会立即分离actor

时间:2014-12-04 20:41:43

标签: libgdx dispose actor stage detach

我使用libgdx,我遇到这种情况,我使用附加了三个Stage的{​​{1}}。 当为该阶段调用Actors方法时,将调用每个actor的act()方法。这是默认行为,它是正确的。

但是,如果我将场景置于第二个actor act()方法中,那么仍然会调用第三个actor的act()方法。我不会期望这种行为。就像这个actor在舞台上调用act()方法后不会立即分离。 第三个演员的最后一次调用对我来说是有问题的,因为我得到了一个异常,我不知道如何避免它。如果在场景实际处置之前最后一次没有调用第三个actor的act()方法,那将是很好的。

你知道我怎么能避免这个?

我发现很难改变我的游戏设计,因为在我的情况下,第二个演员是敌人,第三个演员是防御塔。当敌人死亡时,我处置场景以便在屏幕上显示游戏。但塔仍然在后台行动......

2 个答案:

答案 0 :(得分:0)

尝试使用actor.remove()或stage.clear()

答案 1 :(得分:0)

当你的敌人死亡时,你可以直接通过控制你舞台的任何课程作为你演员的争论而不是改变屏幕/处理你的舞台。当你的演员去世时,你可以,例如在类中设置一个boolean,让你的舞台转换,然后在调用stage.act()之后,检查你是否需要进行过渡,然后安全地处理阶段。它不是很优雅,但肯定会起作用。还有很多方法可以实现从外部对象调用的转换。 boolean可能非常有限,因为您无法告诉您的游戏您希望转换到哪个屏幕,因此您可能希望实现某种Runnable实施。有很多方法。

只是一个想法。我希望这会有所帮助。