2015-10-04 1 views
0

Я хочу получить позицию актера внутри InputListener. Проблема в том, что, однако, я получаю правильную позицию, в которую он не входит. Как я могу это получить?Получение положения актера с его дополнением

// 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(); 

Тогда вы можете получить все колодки Arround (сверху, слева, снизу, справа) и изменить положение с ней, которая даст вам позицию с аттенюатором включены.

Помните, что позиция рассчитывается как позиция левого нижнего угла актера, поэтому вам нужно только левое и нижнее значение пэда.

 Смежные вопросы

  • Нет связанных вопросов^_^