Цвета ShapeRenderer перестают работать при рендеринге изображений с помощью SpriteBatch

Я сделал игру, которая использует ShapeRenderer для создания раскрашенных линий. Это сработало хорошо, но когда я начал импортировать изображения, цветные линии вдруг стали черными. Хуже всего: когда я использую фон, строки вообще не отображаются, и да, я рисую его в правильном порядке ….

Код для импорта и рендеринга изображений:

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

……………………………………

 @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(); } 

Но когда я удаляю код для выделения фона и изображений, строки будут отображаться и в нужном цвете ….

Пожалуйста помоги!!

EDIT: Рисование с помощью ShapeRenderer выглядит примерно так (не нужно вставлять все):

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

Вы не можете встраивать объекты, зависящие от контекста OpenGL. В частности, вы ShapeRenderer.begin() в 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();