Я делаю простую игру RTS. Я создал отдельные этапы для карты и пользовательского интерфейса и использовал класс таблицы scene2D для боковой панели. Проблема в том, что когда я навожу курсор на свою боковую панель, если в данный момент под панелью есть актер (здание), он запускает событие наведения мыши. События щелчка работают правильно.
Вот мои слушатели ввода класса здания:
public class Building extends Actor {
addListener(new InputListener(){
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
System.out.println("Click");
return true;
}
public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor){
((Building)event.getTarget()).hover = true;
}
Вот мои слушатели панельного класса
public class SidePanel extends Table {
panelBg = new Image(skin,"side-panel");
addListener(new InputListener(){
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
System.out.println("Click");
return true;
}
public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor){
System.out.println("Enter");
}
});
addActor(panelBg);
}
}
Затем боковая панель добавляется к этапу класса пользовательского интерфейса:
public class UI {
public UI(){
stage = new Stage();
sidePanel = new SidePanel();
stage.addActor(sidePanel);
Gdx.input.setInputProcessor(stage);
}
И, наконец, я добавил пользовательский интерфейс в основной класс:
@Override
public void create () {
ui = new UI();
CP =new InputMultiplexer();
CP.addProcessor(ui.stage);
CP.addProcessor(gameStage);
Gdx.input.setInputProcessor(CP);
}
Не уверен, в чем проблема, потому что событие click работает нормально;