2015-10-04 39 views
0

我想獲取InputListener中actor的位置。問題是,我得到了正確的位置,它不包括演員的墊子。我怎樣才能得到這個?使用其填充獲取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

如果您確信演員裏面(和這裏的時候,你的類擴展表,你應該是),你可以只投它的母公司,然後得到填充值。例如以使左填充值,你只需使用:

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

然後你就可以得到所有墊以防萬一(上,左,下,右)和修改它的位置與包括墊,這將給你的位置。

請記住,位置計算爲演員的左下角的位置,因此您只需要左側和底部填充值。