【问题标题】:Shaperenderer crash libgdxShaperenderer 崩溃 libgdx
【发布时间】:2016-03-09 16:50:42
【问题描述】:

我正在使用 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”方法时(用于绑定着色器)。

正常吗?

【问题讨论】:

  • Logcat 显示什么?
  • 02-09 17:38:39.825 17727-17759 A/libc:致命信号 11(SIGSEGV),代码 1,故障地址 0xffffff87e63000 在 tid 17759(GLThread 5934)中t加载任何图像:/编辑:不,我不做多线程,我只有一个扩展游戏的“应用程序管理器”类,我在“创建”方法上创建“测试”对象,就是这样
  • 您是否对默认的 Libgdx Android 启动器类进行了任何更改?你在做多线程吗?
  • 我已经编辑了我的最后一条评论 =)

标签: java android crash libgdx draw


【解决方案1】:

你需要先在你的 show 方法上创建一个摄像头:

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

并在渲染方法上在绘制之前设置projectionMatrix:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多