在我的Slick2D游戏中,我使用Nifty GUI叠加扩展NiftyOverlayBasicGameState
,并指定PlainSlickInputSystem
。对于大多数重叠的屏幕,我希望Nifty GUI忽略所有输入并将其传递给GameState
。
对于一个特定的屏幕,我想阻止所有输入进入底层GameState
- 但我只希望这发生在一个屏幕上,而不是所有屏幕上。
这可能是使用Nifty GUI,还是我采取了错误的方法?各个屏幕可以指定不同的输入处理行为吗或者我应该使用一个单独的GameState
与不同的Niftyu GUI输入系统用于我希望Nifty GUI处理输入的一个屏幕?
答案 0 :(得分:0)
有几种选择。最基本的一种是拥有某种背景图层并为其设置visibleToMouse="true"
。这样,所有鼠标事件都将触及该图层,鼠标事件将被标记为由 Nifty 处理。这样可以防止事件转发到GameState
。