我怎么知道当一个演员删除在libgdx



这是一种知道演员何时被撤下舞台的方法吗?(事件?)我需要知道它是什么时候被删除的,而不是打算被删除的

您可以覆盖setStage(Stage stage),当stage变为null时,您可以采取行动…

看这个:

@Override
protected void setStage(Stage stage) {
    super.setStage(stage);
    if (stage != null) {
        // Actor added to stage
    } else {
        // Actor removed from stage
    }
}

这可能是一个概念上的错误方式,因为Scene2d的设计不管理这类事件。但有时确实有必要有这样一个钩子。也许@noone描述的解决方案更好,但这是一个更干净的方法。

没有那样的事。你通常会自己移除actor,所以你可以在那里触发一个自定义事件。

也不可能创建一种新的Stage来触发这样的事件,因为Stage实际上并不直接知道参与者。Stage有一个"根"Group,它有子节点。这些子元素也可以有子元素,当调用Actor.remove()时,actor实际上只是将自己从父元素的子元素列表中移除。这将是触发此类事件的好地方,但是父Group甚至可能没有附加到Stage。此外,创建一个新的ActorGroup类来触发这样的事件,如果你使用的是"原生"scene2d,就行不通了。Ui,因为它们已经扩展了本地libgdx类。您唯一的选择是更改libgdx实现以添加此默认行为。

当你做Actor.remove()时,可能更容易自己调用事件侦听器方法。

最新更新