Libgdx屏幕gui(用于暂停按钮)

问题描述:

我正在研究需要一些GUI在我的游戏屏幕上方的游戏。类似于Android中的FrameLayoutLibgdx屏幕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方法。这可能不是你的正确选择,但它是一个可行的选择。

+0

好吧,我虽然如此...我检查了InputMultiplexer文档...您的答案使sence。我会尝试这个问题......希望它能起作用。 Tnx很多! :)我熟悉在Android中处理输入,我希望它的作品类似:) – Veljko 2013-03-04 15:44:02