【问题标题】:Aspect Ratio for ShapeRender in LibGDX (OpenGL)LibGDX (OpenGL) 中 ShapeRender 的纵横比
【发布时间】:2015-07-28 23:55:15
【问题描述】:

在 LibGDX 中,我使用了一个生成 10x10 正方形的 ShapeRenderer。为了保持纵横比,我将 ExtendedViewport 应用于 OrthographicCamera 并将舞台设置为 ExtendedViewport。

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);

在 render() 中,我调用了 shaperenderer,它应该生成一个正方形,但会渲染一个 y 拉伸矩形。

        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 而不是创建自己的方法。

编辑: ExtendViewport 中似乎存在错误。 FitViewport 不会拉伸对象。

【问题讨论】:

  • 您是否忘记将相机应用于形状渲染器?

标签: java opengl libgdx viewport aspect-ratio


【解决方案1】:

在shapeRenderer().begin之前,调用shapeRenderer().setProjectionMatrix(camera.combined);这对于 SpriteBatches 也是必需的。

【讨论】:

    猜你喜欢
    • 2016-10-06
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多