Stage
を使用して UI を管理できるはずです。入力を正しく機能させるには、 を追加しInputMultiplexer
てStage
、現在の入力スキームが両方とも入力を取得するようにする必要があります。
設定するには、次のようにします。
InputMultiplexer multiplexer = new InputMultiplexer();
multiplexer.addProcessor(stage);
multiplexer.addProcessor(gameScreenInputProcessor);
Gdx.input.setInputProcessor(multiplexer);
( https://code.google.com/p/libgdx/wiki/InputEventのコードに基づくコード サンプル)
順序が重要であることに注意してください (UI がタッチされているかどうかを確認するために、最初にステージでイベントを取得する必要があると思います)。また、入力イベント ハンドラからのブール値の戻り値は、「処理された」イベントがマルチプレクサによって伝播されないため、マルチプレクサではより重要です。内部の UI イベントにStage
は、独自の「処理済み」フラグがあります (ほとんどの場合、正しいことを行いますが、微妙な違いがいくつかあります)。
に代わる 1 つの方法は、グローバル にプラグインする現在のゲーム画面を含むInputMultiplexer
"GameScreenActor" ( の新しいサブクラス) を作成することです。ただし、入力処理を scene2d アプローチに移行する必要があります。これはおそらくあなたにとって正しい選択ではありませんが、実行可能な選択です。Actor
Stage