我想在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();
}
};
答案 0 :(得分:0)
如果你确定演员是在表里面(这里你应该在你的类扩展表时),你可以只是转换它的父级然后获得pad值。例如,要获得左边的垫值,只需使用:
float padLeft = ( (Table) actor.getParent() ).getPadLeft();
然后你可以将所有垫子绕到(顶部,左侧,底部,右侧)并用它修改位置,这将为您提供包含垫的位置。
请记住,该位置是按演员的左下角的位置计算的,因此您只需要左下角的底部值。