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

When to use Screen, Stage, and Group in LibGDX

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

然后:

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

Load Game 有多个存档可供选择,还有 LoadDelete 选项。

OptionsGraphics levelVolume 单选/滑块 + ApplyDiscard 按钮。

最后,游戏屏幕将有一个可平移的游戏 window,以及屏幕侧面的叠加层 UI。

我的问题是,我不知道 class 用于那些 UI 部分。

this 回答我知道 Screen 是一个完整的 UI 页面,但似乎创建一个新的 Screen 然后 Stage对于这些主菜单选项中的每一个似乎都是矫枉过正,但也许这就是要走的路。我不知道是否应该根据用户点击的内容使用 Group 和 show/hide。我还被告知使用 Table 来布置游戏画面。我对在网上找到的所有指南感到非常困惑。每个看起来都不同。

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

对于如何使用 LibGDX 中的那些 class 是否有任何共识?还是个人喜好?

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

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

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

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

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


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

您可以使用 scene2d,一个 2D 场景图,用于使用角色层次结构构建 uilding UIs。 Stage 和 Group 是 scene2d 的核心 classes。

  • Stage class 有一个相机、SpriteBatch 和一个根组,负责绘制演员和分发输入事件。

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