Разница между сценами libgdx и экраном

Я делаю игру, и я вижу в учебниках некоторых людей, использующих класс Stage, и других, использующих класс Screen, но я не могу понять различия.

Ответы

Ответ 1

A Stage содержит Actor экземпляры и обновляет/анимирует их и управляет обнаружением среди них. Его корень scene2d "графика сцены" API. Этап является одним из способов управления списком объектов для рисования, их состоянием на экране (текстуры, состояние анимации, размер и т.д.) И их взаимодействие с пользователем. Предоставляемый код сцены в Libgdx в основном ориентирован на элементы пользовательского интерфейса, такие как кнопки и списки, но ядро ​​достаточно гибкое, чтобы содержать элементы игры.

A Screen обычно представляет собой полноэкранный интерфейс "страница". Например, у вас может быть экран "Главное меню", экран "Настройки", экран "Главная игра" и экран "Конечные кредиты". Обычно экземпляры Screen управляются экземпляром Game. При использовании с Game объекты Screen получат стандартные жизненные события Libgdx как обратные вызовы (pause, resume, resize, render и т.д.).

В Libgdx нет конкретных отношений между Stage и Screen. Но проще всего придумать пример, где экран "главного меню" реализуется с помощью Stage, который управляет кнопками в главном меню. Когда пользователь нажимает одну из кнопок, игра может переключиться на главный экран игры и отпустить некоторые ресурсы, которые хранятся в главном меню. Экран игры может использовать Stage или использовать исходный OpenGL для реализации игры.