У меня есть приложение, которое в настоящее время работает с одним этапом, но мне нужно добавить боковой дисплей / секцию в качестве HUD с оценками / жизнями и т. Д., Так что HUD находится слева, а основной экран справа , Основной игровой экран будет зафиксирован и не будет перемещаться.
Из исследования я нашел пару решений.
1 – два этапа 2 – группа с двумя группами к ней, возможно, с использованием горизонтальной группы 3 – две камеры одной ступени 4 – одна ступень, одна камера, но изменение положения камеры для каждого набора участников.
Я думаю, вариант 1 – это мое предпочтение, но у меня есть некоторые вопросы.
Наконец, вне темы, я немного запутался в spritebatch. В настоящее время я его не использую, потому что я использую сцену. Это нормально, или я все равно буду использовать его вместе со сценой? И добавить к этому всех моих актеров?
Это я правильно понял, вы используете scene2d для игрового мира, а также для вашего HUD. И HUD не накладывает игровой мир, а использует исключительно свою часть экрана.
Этапы не всегда заполняют весь экран. У них нет понятия заполнять или ничего не заполнять, потому что они могут иметь объекты, которые вытягиваются из экрана. Тем не менее, они привязаны к прямоугольнику, определенному их Видовым окном.
В вашем случае, похоже, вам нужны два видовых экрана, и, следовательно, два этапа. Вы говорите, что не используете Viewport, но вы … Этап автоматически создает собственный ScalingViewport, который настроен как StretchViewport. (ScalingViewport не упоминается в документации, которая устарела.) StretchViewport обычно плохо, потому что ваша игра будет искажена, чтобы соответствовать любому соотношению сторон устройства.
ExtendViewports не вызывают черные полосы, если вы не устанавливаете максимальную ширину / высоту на них, и я думаю, что это лучший выбор для любого игрового мира.
Вы можете настроить два видовых экрана для охвата определенных частей экрана, которые вы рассчитываете сами. Поскольку это специализированный случай, я думаю, вам придется напрямую подклассифицировать класс Viewport (не один из его подклассов) и манипулировать каждым из них с помощью viewport.setScreenBounds(...)
.
Что касается вашего последнего вопроса: да, каждый из двух этапов имеет свой собственный Viewport, и у каждого видового экрана есть собственная камера. После того, как вы настроите два видовых экрана для каждого из них, у вас есть собственная часть экрана, вы также можете настроить их для обработки их соответствующих нижних левых углов как 0,0.