4

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

しかし、背景と写真を修正するためのコードを削除すると、線が正しい色で表示されます。

助けてください!!

ShapeRenderer編集:次のような外観で描画します(すべてを入れる必要はありません):

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

1 に答える 1

11

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();
于 2013-03-04T22:49:43.427 に答える