libgdx的Stage和Screen之间的区别

22

我正在制作一款游戏,在教程中看到有些人使用Stage类,而其他人则使用Screen类,但我无法弄清楚它们之间的区别。

1个回答

38

一个Stage持有Actor实例并更新/动画它们,同时管理它们之间的碰撞检测。它是scene2d "场景图" API的根。 Stage是管理要绘制的对象列表、它们在屏幕上的状态(纹理、动画状态、大小等)以及它们与用户的交互的一种方式。Libgdx提供的Stage代码主要面向按钮和列表等UI元素,但其核心足够灵活,可以包含游戏元素。

一个Screen通常代表着一个全屏的UI“页面”。例如,你可能有一个“主菜单”屏幕,一个“选项”屏幕,一个“主游戏”屏幕和一个“结束信用”屏幕。这些Screen实例通常由一个Game实例管理。当与Game一起使用时,Screen对象将作为回调接收标准的Libgdx生命周期事件(如pauseresumeresizerender等)。

没有在Libgdx中StageScreen之间的具体关系。但最简单的想法是,将“主菜单”屏幕实现为一个Stage,管理主菜单中的按钮。当用户点击其中一个按钮时,游戏可能会切换到主游戏屏幕,并释放一些由主菜单持有的资源。游戏屏幕可以使用Stage或原始OpenGL来实现游戏。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接