В LibGDX Я использую ShapeRenderer, который создает квадрат 10x10. Чтобы сохранить соотношение сторон, я применил ExtendedViewport к OrthographicCamera и установил этап ExtendedViewport.Соотношение сторон для ShapeRender в LibGDX (OpenGL)
public class Game extends ApplicationAdapter {
private Viewport viewport;
private Stage stage;
private Camera camera;
@Override
public void create() {
camera = new OrthographicCamera(800, 480);
viewport = new ExtendViewport(800, 480, camera);
stage = new Stage(viewport);
В визуализации() я называю shaperenderer, который должен произвести квадрат, но оказывает у растянутой прямоугольник.
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.identity();
shapeRenderer.setColor(Colors.get(square.color));
shapeRenderer.rect(square.x, square.y, square.width, square.height);
shapeRenderer.end();
Я предполагаю, что проблема заключается в том, что ShapeRenderer не зарегистрирован на сцене. Если я правильно понимаю, только актеры могут выступать на сцене, и я не могу добавить примитивные формы.
У меня есть довольно простые графические объекты, которые появляются и исчезают. Можно ли избежать использования сцены и сохранить пропорции, или мне нужно поставить ShapeRender внутри актера? Я хотел бы использовать ExtendedViewport и не создавать свой собственный метод.
EDIT: В ExtendViewport имеется ошибка. FitViewport не растягивает объекты.
Вы забыли применить свою камеру к визуализатору фигуры? – Tenfour04