如何在libgdx scene2d ui中绘制信息面板

时间:2014-01-22 13:44:37

标签: java libgdx scene2d

在我的libgdx游戏中,想要绘制一个信息面板,显示当前的健康状况等。我看到this question显示了类似的内容,但是我的面板不需要对用户输入作出反应,它应该只显示信息。这就是为什么我不想在我的游戏屏幕上添加第二个阶段。但我需要确定它是在其他一切之前绘制的。我该如何管理?我认为z-Index不会起作用,因为当我的角色拍摄时它会在舞台上添加一个“子弹”演员,这个会在最后一个索引对吗? “暂停菜单”也是如此,但为此我真的可以使用第二阶段。或者暂停菜单还有更好的解决方案吗?

编辑: 覆盖stage.draw()方法是个好主意吗?我可以先调用super.draw()然后绘制我的infopanel。所以它总是在前面。或者我不应该覆盖stage.draw()?

2 个答案:

答案 0 :(得分:2)

这里最好的方法是有两个阶段。

如果您不希望它对用户输入交互作出反应,您唯一需要做的就是不将第二阶段设置为输入处理器。

覆盖stage.draw()显然会起作用,但这会使维护变得困难。 此外,它是一个不受欢迎的设计选择,因为你的游戏功能正在舞台的子类中描述(它应该是一个演员(在一个理想的世界:D))

希望这有帮助。

答案 1 :(得分:1)

  

覆盖stage.draw()方法是个好主意吗?我可以先调用super.draw()然后绘制我的infopanel。所以它总是在前面。或者我不应该覆盖stage.draw()?

如果你真的希望所有人都在一个阶段。 (我真的没有看到这一点,因为使用2个阶段会使设计更容易)。好的。不要犹豫,重写Stage.draw();