Сделать Nifty GUI ScreenController глотать ввод

В моей игре Slick2D я расширяю NiftyOverlayBasicGameStateс использованием графических оверлеев Nifty и указанием PlainSlickInputSystem, Для большинства наложенных экранов я бы хотел, чтобы Nifty GUI игнорировал весь ввод и передавал его GameState,

Для одного конкретного экрана я бы хотел, чтобы все входные данные не доходили до базового GameState - но я хочу, чтобы это происходило только на одном экране, а не на всех.

Возможно ли это с помощью Nifty GUI или я выбрал неправильный подход? Могут ли отдельные экраны определять различное поведение при обработке ввода? Или я должен вместо этого использовать отдельный GameState с другой системой ввода Niftyu GUI для одного экрана, где я хочу, чтобы Nifty GUI обрабатывал ввод?

1 ответ

Решение

Есть несколько вариантов. Самый простой - иметь некоторый фоновый слой и установить visibleToMouse="true" для этого. Таким образом, все ваши события мыши попадут в этот слой, и события мыши будут помечены как обработанные Nifty. Это должно предотвратить передачу событий на GameState,

Другие вопросы по тегам