【发布时间】:2015-02-02 21:37:08
【问题描述】:
我使用 libgdx,我遇到了这种情况,我使用 Stage 并附加了三个Actors。
当为舞台调用act() 方法时,将调用每个演员的act() 方法。这是默认行为并且是正确的。
但是,如果我在第二个演员的act() 方法中处理场景,那么第三个演员的act() 方法仍然会被调用。我不会预料到这种行为。就像在舞台上调用 dispose() 方法后,这个演员并没有立即被分离。
对第三个演员的最后一次通话对我来说是有问题的,因为我遇到了一个异常并且我不知道如何避免它。如果第三个演员的 act() 方法不会在场景被实际处理之前最后一次被调用,那就太好了。
你知道我该如何避免这种情况吗?
我发现很难改变我的游戏设计,因为在我的情况下,第二个角色是敌人,第三个角色是防御塔。当敌人死亡时,我会处理场景以在屏幕上显示游戏。但是塔仍然在后台运行...
【问题讨论】:
-
这是 Stage 的设计行为。它保证每个演员的
act方法在一帧中被调用一次,而不管其他演员在做什么。我认为在大多数情况下,这是最有用的行为。也许你可以分享你的塔的 act 方法中发生的导致异常的事情。 -
谢谢,我相信重新设计我的应用程序的一部分可以避免这种情况。只是我觉得奇怪的是,即使在被处理之后,仍然有一个演员在舞台上表演。我不认为有一个干净的方法来处理这个。
标签: libgdx dispose actor stage detach