我正在使用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”方法时(用于绑定着色器)。
这是正常的吗?
答案 0 :(得分:0)
您需要先在show方法中创建一个摄像头:
OrthographicCamera camera;
[...]
camera = new OrthographicCamera();
camera.setToOrtho(false);
并且在render方法中,在绘制之前设置projectionMatrix:
camera.update();
shapeRenderer.setProjectionMatrix(camera.combined);