通过填充获取演员位置

时间:2015-10-04 12:13:24

标签: java libgdx scene2d

我想在InputListener中获取actor的位置。问题是,然而我得到了正确的位置,它不包括演员的垫。我怎么能得到这个?

    // MenuBar class extends Table
    defualts().pad(5.0f);
    Label label = new Label(name, labelStyle);
    add(label);
    menuGroup.setup(label)
    // MenuGroup class
    public void setup(Actor actor) {
        actor.addListener(changeListener)
    }

    private void setListeners() {
        changeListener = new ChangeListener() {
            private Vector2 pos = new Vector2();
            public void changed(ChangeEvent event, Actor actor) {
            pos.set(0, 0);
            pos = actor.localToStageCoordinates(pos);
            mainMenu.setPosition(pos.x, pos.y);
            show();
        }
    };

1 个答案:

答案 0 :(得分:0)

如果你确定演员是在里面(这里你应该在你的类扩展表时),你可以只是转换它的父级然后获得pad值。例如,要获得左边的垫值,只需使用:

    float padLeft = ( (Table) actor.getParent() ).getPadLeft();

然后你可以将所有垫子绕到(顶部,左侧,底部,右侧)并用它修改位置,这将为您提供包含垫的位置。

请记住,该位置是按演员的左下角的位置计算的,因此您只需要左下角的底部值。