2015-05-17 3 views
2

В 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 не растягивает объекты.

+0

Вы забыли применить свою камеру к визуализатору фигуры? – Tenfour04

ответ

1

Перед формойRenderer(). Begin, call shapeRenderer(). SetProjectionMatrix (camera.combined); Это также необходимо для SpriteBatches.

Смежные вопросы