2016-10-18 3 views
0

Мой вопрос сегодня в том, как обращаться с игровыми кнопками ...Кнопка Libgdx нажата один раз

У меня есть этот ClickListener на моей кнопке. То, что я хочу достичь, - это когда я нажимаю кнопку, она добавляет эту таблицу на сцену, и когда я снова нажимаю кнопку, она удаляет таблицу со сцены. ИЛИ мне было бы хорошо, когда я нажимаю кнопку, она добавляет таблицу, тогда кнопка ничего не делает, пока я не удалю другую кнопку, закрывающую таблицу (например, кнопку X (закрыть)).

assignButton.addListener(new ClickListener(){ 
     @Override 
     public void clicked(InputEvent event, float x, float y) 
     { 
      if(assignButton.isPressed()) 
      { 
       stage.addActor(assignTable.getAssignTable()); 
      } 
     } 

Также Я удаляю таблицу со сцены, делая stage.clear(), а затем делать stage.add (tableExample), чтобы добавить обратно мой нормальный стол .. есть способ, чтобы удалить одну конкретную таблицу ? например stage.remove (assignTable)?

ответ

0

Почему бы вам не попробовать что-то вроде этого:

assignButton.addListener(new ClickListener(){ 

    boolean added = false; 

    @Override 
    public void clicked(InputEvent event, float x, float y) 
    { 
     if(!added) { 
      stage.addActor(assignTable.getAssignTable()); 
      added = true; 
     } else { 
      stage.removeActor(assignTable.getAssignTable()); 
      added = false; 
     } 
} 
+0

Булева трюк сработал! так спасибо за это! но я почти уверен, что не что-то вызывает stage.removeActor (что угодно), так что я сделал stage.clear(); assignTable.getAssignTable() сброса(). stage.addActor (mainTable); который ничего не дает таблице, а затем добавляет обратно то, что нужно ... и я не думаю, что это лучший способ справиться с этим, но он сработал. – johnnyboy5566

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