Ответ 1
Вам нужно использовать InputMultiplexer
для пересылки событий на InputProcessors
. Он будет выглядеть следующим образом:
InputProcessor inputProcessorOne = new CustomInputProcessorOne();
InputProcessor inputProcessorTwo = new CustomInputProcessorTwo();
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(inputProcessorOne);
inputMultiplexer.addProcessor(inputProcessorTwo);
Gdx.input.setInputProcessor(inputMultiplexer);
Мультиплексор работает как какой-то коммутатор/концентратор. Он получает события от LibGDX, а затем удаляет их на обоих процессорах. В случае, если первый процессор возвращает true
в своей реализации, это означает, что событие было полностью обработано и оно больше не будет перенаправлено второму процессору. Поэтому, если вы всегда хотите, чтобы оба процессора получили события, вам нужно вернуть false
.