LibGDX: добавление окна на сцену переопределяет все входные данные

#input #libgdx #window #scene2d

#ввод #libgdx #окно #scene2d

Вопрос:

Проблема: я пытаюсь добавить в свою игру окно, которое не переопределяет все входные данные. Я хочу иметь возможность перемещать проигрыватель с помощью ввода с клавиатуры, пока открыто окно.

Что я пробовал:

  • Я добавил этап и обработчик управления вводом проигрывателя в InputMultiplexer, но, похоже, что этап Scene2D полностью игнорирует все входные данные, если это не влияет на последнее добавленное окно.
  • Я попытался получить ввод с клавиатуры из Window и передать его моему обработчику ввода проигрывателя. Не удалось найти какой-либо процессор ввода в классе Window.
  • Изменен приоритет обработчика ввода проигрывателя на начало входного мультиплексора, по-прежнему игнорируется.

Вопрос: Есть ли способ переопределить эту функциональность? Должно быть, я что-то упускаю. Спасибо.

Комментарии:

1. Вместо описания вашего кода вы могли бы показать нам код.

2. github.com/vedi0boy/ArchipeloClient Вот мой репозиторий git. Код, о котором идет речь, находится внутри core/src/.../screens/gamescreen/chatwindow.java (Window) и core/src/.../screens/gamesscreen.java (Screen for game) и core/src/.../tools/controlsmanager.java (Player controls input manager).

3. Когда вы говорите «весь» ввод, вы буквально имеете в виду все типы ввода или только клавиатуру? Вы настраиваете ChatWindow, чтобы получить фокус клавиатуры сцены. Я не понимаю, почему он будет требовать каких-либо других типов ввода, если вы не установили его isModal .

4. Кажется, что сенсорный ввод работает. Я добавил код для расфокусировки клавиатуры, если пользователь касается вне окна, но он по-прежнему не видит ввод с клавиатуры. Кроме того, что это isModal такое?