我正在制作游戏,我在教程中看到一些人使用Stage类,而其他人使用Screen类,但我无法弄清楚差异。
答案 0 :(得分:32)
Stage
保存Actor
个实例并更新/动画它们并管理其中的点击检测。它是scene2d "scene graph" API的根。舞台是一种管理要绘制的对象列表,它们在屏幕上的状态(纹理,动画状态,大小等)以及它们与用户的交互的方式。 Libgdx中提供的Stage代码主要面向按钮和列表等UI元素,但核心足够灵活,可以包含游戏元素。
Screen
通常代表一个全屏UI“页面”。例如,您可能有一个“主菜单”屏幕,一个“选项”屏幕,一个“主游戏”屏幕和一个“结束信用”屏幕。 Screen
实例通常由Game
实例管理。与Game
一起使用时,Screen
个对象将收到标准的Libgdx生命周期事件作为回调(pause
,resume
,resize
,render
,等等)。
Libgdx中Stage
和Screen
之间没有具体关系。但最容易想到的一个例子是“主菜单”屏幕由管理主菜单中按钮的舞台实现。当用户点击其中一个按钮时,游戏可能切换到主游戏屏幕,并释放主菜单保存的一些资源。游戏播放屏幕可能使用Stage
或可能使用原始OpenGL来实现游戏。