2016-07-11 9 views
0

私はすべての私の俳優を表示させないグループに俳優を追加しています。俳優たちは、私は問題なく俳優にグループ展内の他のすべての俳優を削除するたびにlibgdx:Shaperendererを使って俳優を追加すると、私のすべての俳優はレンダリングされないのはなぜですか?

@Override 
public void draw(Batch batch, float parentAlpha) { 
    super.draw(batch, parentAlpha); 

    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); 
    shapeRenderer.rectLine(ax, ay, bx, by, 5); 
    shapeRenderer.end(); 
} 

以下のようにメソッドがShaperendererを使用して描画します。これをどうすれば解決できますか?

答えて

2

SpriteBatchとShapeRendererの開始/終了をインターリーブすることはできません。アクターの描画メソッドが呼び出されると、begin()が既にSpriteBatchで呼び出されています。だから、このようなあなたのdraw()方法を修正することができます:

@Override 
public void draw(Batch batch, float parentAlpha) { 
    super.draw(batch, parentAlpha); 
    batch.end(); 
    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); 
    shapeRenderer.rectLine(ax, ay, bx, by, 5); 
    shapeRenderer.end(); 
    batch.begin(); 
} 

またシェイプレンダラのための射影行列を設定していることを確認します。

これを実行するすべてのアクタに対して、追加のSpriteBatchフラッシュが発生していることに注意してください。

関連する問題