Libgdx屏幕gui(用于暂停按钮)
问题描述:
我正在研究需要一些GUI在我的游戏屏幕上方的游戏。类似于Android中的FrameLayout
。Libgdx屏幕gui(用于暂停按钮)
我有GameScreen,一切都在发生。 我现在想要的是添加一个“暂停”按钮,高分信息等。
我试图将Stage
对象与普通精灵绘图相结合。 但是我在处理输入时遇到了一些问题:如果用户点击了舞台上的暂停按钮,或者点击了游戏区域(我应该添加一些子弹),如何管理...
有人能为我清楚吗?
答
您应该可以使用Stage
来管理您的用户界面。为了让输入正常工作,您需要添加一个InputMultiplexer
,这样Stage
,然后您当前的输入方案都将获得输入。
要设置它,你会做这样的事情:(基于https://code.google.com/p/libgdx/wiki/InputEvent代码代码示例)
注意顺序很重要
InputMultiplexer multiplexer = new InputMultiplexer();
multiplexer.addProcessor(stage);
multiplexer.addProcessor(gameScreenInputProcessor);
Gdx.input.setInputProcessor(multiplexer);
(我猜你”我们希望舞台先获取事件以查看UI是否被触摸)。此外,来自输入事件处理程序的布尔返回值对于多路复用器来说更为重要,因为“已处理”事件不会由多路复用器传播。 Stage
内部的UI事件都有自己的“已处理”标志(大多数情况下它是正确的,但存在一些细微差别)。
InputMultiplexer
的一种替代方法是创建一个“GameScreenActor”(Actor
的新子类),其中包含您插入全局Stage
的当前游戏屏幕。不过,您必须将输入处理移至scene2d方法。这可能不是你的正确选择,但它是一个可行的选择。
好吧,我虽然如此...我检查了InputMultiplexer文档...您的答案使sence。我会尝试这个问题......希望它能起作用。 Tnx很多! :)我熟悉在Android中处理输入,我希望它的作品类似:) – Veljko 2013-03-04 15:44:02