Сделать Nifty GUI ScreenController глотать ввод
В моей игре Slick2D я расширяю NiftyOverlayBasicGameState
с использованием графических оверлеев Nifty и указанием PlainSlickInputSystem
, Для большинства наложенных экранов я бы хотел, чтобы Nifty GUI игнорировал весь ввод и передавал его GameState
,
Для одного конкретного экрана я бы хотел, чтобы все входные данные не доходили до базового GameState
- но я хочу, чтобы это происходило только на одном экране, а не на всех.
Возможно ли это с помощью Nifty GUI или я выбрал неправильный подход? Могут ли отдельные экраны определять различное поведение при обработке ввода? Или я должен вместо этого использовать отдельный GameState
с другой системой ввода Niftyu GUI для одного экрана, где я хочу, чтобы Nifty GUI обрабатывал ввод?
1 ответ
Есть несколько вариантов. Самый простой - иметь некоторый фоновый слой и установить visibleToMouse="true"
для этого. Таким образом, все ваши события мыши попадут в этот слой, и события мыши будут помечены как обработанные Nifty. Это должно предотвратить передачу событий на GameState
,