何时在LibGDX中使用Screen,Stage和Group

时间:2018-03-09 21:12:41

标签: libgdx

我有一个主菜单屏幕,有4个选项,New GameLoad GameOptionsExit

然后:

New Game有更多选项,例如difficulty# of players + Start按钮。

Load Game有多个保存可供选择以及LoadDelete选项。

OptionsGraphics levelVolume广播/滑块+ ApplyDiscard按钮。

最后,游戏界面会有一个可上传的游戏窗口,以及屏幕一侧的覆盖用户界面。

我的问题是,我不知道要为这些UI部分使用哪个类。

this回答我知道Screen是一个完整的用户界面页面,但似乎为每个主菜单创建了一个新的Screen,然后是Stage选项看起来像是一种矫枉过正,但也许这就是要走的路。我不知道是否应该使用Group并根据用户点击的内容显示/隐藏这些内容。我还被告知使用Table布局游戏画面。我在网上发现的所有指南都让我感到困惑。每个人看起来都不同于另一个。

文档非常好,但它从未说明各个部分是如何相互集成的。

对于如何在LibGDX中使用这些类,是否有任何共识?或者这是个人偏好?

1 个答案:

答案 0 :(得分:2)

Screen是核心libGdx部分,代表众多应用程序屏幕之一,例如mainscreensettingsscreengamescreen和等等。

  • 主屏幕可能包含设置,播放,级别等按钮,可帮助您在其他屏幕上重定向。
  • settingsscreen可能包含重定向到上一个主屏幕的后退按钮和其他ui元素,如声音按钮,音乐按钮,语言选择按钮。

在一个具有不同生命周期的ApplicationListener上下文中维护不同的UI屏幕很难。

所以有一个Game类和Screen界面,可以帮助在设备屏幕上一次显示一个活动屏幕。

我想你现在已经清楚了,为什么我们需要不同的屏幕。

现在我如何设计一个像MenuSceen一样的屏幕,其中包含菜单按钮,游戏名称和充当HomeScreen的类似元素。

您可以使用scene2d,一个2D场景图,使用actor的层次结构构建UI。 Stage和Group是scene2d的核心类。

  • Stage类具有相机,SpriteBatch和根组,并处理绘制actor和分发输入事件。

  • Group class是一个可能有儿童演员的演员。