libgdx阶段和屏幕之间的区别

我正在制作游戏,我在教程中看到一些人使用Stage类,而其他人使用Screen类,但我无法弄清楚差异。

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

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

Libgdx中StageScreen之间没有具体的关系。 但最容易想到的一个例子是“主菜单”屏幕由管理主菜单中按钮的舞台实现。 当用户点击其中一个按钮时,游戏可能切换到主游戏播放屏幕,并释放主菜单保存的一些资源。 游戏玩法屏幕可能使用Stage或可能使用原始OpenGL来实现游戏。