2016-08-09 9 views
0

Допустим, что у меня есть Actor, который имеет метод рисования:Libgdx - как увеличить прямоугольник/линия (shaperenderer)

@Override 
public void draw(Batch batch, float parentAlpha) { 
     super.draw(batch,parentAlpha); 

     sr.begin(ShapeRenderer.ShapeType.Line); 
     sr.setColor(Color.RED); 
     sr.rectLine(getX(),getY(),getX() + getWidth(),getY(),3); 
     sr.end(); 
} 

Как вы можете видеть, актер также рисует красную линию под себя. Теперь, когда я масштабирую камеру на сцене, где актер, он становится больше - он работает , но его красный прямоугольник этого не делает.

Когда я установил debug() на Actor, он показывает отладочные строки и увеличивает их Aswell.

Что я пытаюсь достичь?

Мне нужно также увеличить линию вдоль актера.

Если есть кто-нибудь, кто знает, как добиться этого, я был бы признателен;)

ответ

0

Shaperenderer аналогична партии. Он имеет собственную координатную матрицу. Итак, вам нужно установить матрицу проекции на шапандердер.

shaperenderer.setProjectionMatrix(camera.combined); 

Возможно, это сработает для вас.

Но при рисовании шейдеров с помощью вершин ширина линий может не измениться даже при увеличении/уменьшении масштаба.

Вы можете изменить ширину линии с помощью функции openGL.

Gdx.gl.glLineWidth(width); 

И им дополнительно указывает не использовать Shaperenderer, потому что его довольно дорогим классом и рекомендуется только для отладки чертежей.