シンプルなRTSゲームを作っています。マップと UI 用に個別のステージを作成し、サイド パネル用に scene2D Table クラスを使用しました。問題は、サイド パネルをホバーすると、その時点でパネルの下にアクター (建物) がある場合、マウスオーバー イベントが発生することです。クリック イベントは正常に機能します。
これが私のクラス入力リスナーの構築です。
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);
}
}
次に、サイド パネルが UI クラス ステージに追加されます。
public class UI {
public UI(){
stage = new Stage();
sidePanel = new SidePanel();
stage.addActor(sidePanel);
Gdx.input.setInputProcessor(stage);
}
最後に、メイン クラスに UI を追加しました。
@Override
public void create () {
ui = new UI();
CP =new InputMultiplexer();
CP.addProcessor(ui.stage);
CP.addProcessor(gameStage);
Gdx.input.setInputProcessor(CP);
}
クリックイベントが正常に機能するため、問題がどこにあるのかわかりません。