Shaperenderer崩溃libgdx

时间:2016-03-09 16:50:42

标签: java android crash libgdx draw

我正在使用libgdx开发一个新的应用程序,在我的源代码中我正在使用shaperenderer类但是因为我已经购买了我的新平板电脑(Acer Iconia One 10 B3-A20),我的应用程序总是崩溃而不显示任何调用“shaperenderer.end()”方法后出错。即使我创建一个简单的类,如下所示,我错过了什么?

public class Test implements Screen {
    private ShapeRenderer shapeRenderer = new ShapeRenderer();

    @Override
    public void show() {

    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
        shapeRenderer.rect(30,30,200,200);
        shapeRenderer.end();

    }

    @Override
    public void resize(int width, int height) {

    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void hide() {

    }

    @Override
    public void dispose() {
        shapeRenderer.dispose();

    }
}

谢谢

编辑:

将一些断点放入“shaperenderer.end()”方法后,我注意到程序在调用“mesh.render()”方法后崩溃,特别是当它调用Mesh类的“bind”方法时(用于绑定着色器)。

这是正常的吗?

1 个答案:

答案 0 :(得分:0)

您需要先在show方法中创建一个摄像头:

OrthographicCamera camera;
[...]
camera = new OrthographicCamera();
camera.setToOrtho(false);

并且在render方法中,在绘制之前设置projectionMatrix:

    camera.update();
    shapeRenderer.setProjectionMatrix(camera.combined);