使用SpriteBatch渲染图像时,ShapeRenderer颜色停止工作

Dan*_*iel 4 android drawing colors sprite libgdx

我制作了一款ShapeRenderer用于制作彩色线条的游戏.这很好,但是当我开始导入图像时,彩色线条突然变黑了.最糟糕的是:当我使用背景时,线条根本不显示,是的,我正在以正确的顺序绘制它......

导入和渲染图像的代码:

Constructor(){
    TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("data/texture.atlas"));
    AtlasRegion region = atlas.findRegion("path");
    Sprite sprite = new Sprite(region);
}
Run Code Online (Sandbox Code Playgroud)

..........................................

@Override
public void render() {
    Gdx.gl.glClearColor(255, 255, 255, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    batch.begin();
    background.draw(batch); // drawing the background

    drawing.draw(); // drawing the lines
    drawObjects(); // drawing some pictures
    batch.end();
}
Run Code Online (Sandbox Code Playgroud)

但是,当我删除用于渲染背景和图片的代码时,线条将以正确的颜色显示....

请帮忙!!

编辑:用这样的ShapeRenderer外观绘制(不必把所有东西都放进去):

public void draw() {
    shaperenderer.begin(ShapeType.Line);
    shaperenderer.setColor(Color.RED);
    shaperenderer.line(1, 1, 100, 100);
    shaperenderer.end();
}
Run Code Online (Sandbox Code Playgroud)

P.T*_*.T. 11

您不能嵌套依赖OpenGL上下文的对象.具体来说,您正在嵌套ShapeRenderer.begin()a SpriteBatch.begin().如果您将渲染更改为如下所示:

batch.begin();
background.draw(batch); // drawing the background
batch.end(); // end spritebatch context to let ShapeRenderer in

drawing.draw(); // drawing the lines (with ShapeRenderer)

batch.begin(); 
drawObjects(); // drawing some pictures
batch.end();
Run Code Online (Sandbox Code Playgroud)