ShapeRendererオブジェクトが画面上に円を描いていない理由がわかりません。射影行列を変更したり、私のshaperendererオブジェクトの行列をバッチ行列に変換したり、shaperenderer.begin()の前にbatch.end()を追加するなどの提案を含めるようにコードを修正しようとしました。ShapeRenderer LibGdxが動作しない
public void draw (Batch batch, float parentAlpha){
super.draw(batch, parentAlpha);
batch.end();
shapeRend.setProjectionMatrix(batch.getProjectionMatrix());
shapeRend.setTransformMatrix(batch.getTransformMatrix());
float x = body.getWorldCenter().x;
float y = body.getWorldCenter().y;
shapeRend.translate(x, y, 0);
shapeRend.begin(ShapeType.Filled);
shapeRend.setColor(Color.RED);
shapeRend.circle(0, 0, Constants.PLAYER_RADIUS);
shapeRend.end();
batch.begin();
}
本当に私はそのContants.player_radius = 0.2、違いを作るべきではありません以外を提供することができ、他のコードがありません。ここに私のコードです。私は私の世界のレンダラー(Box2D物理学)が見えるが、shaperenderer円はそこにはない。もともと私はtranslate関数を置いておらず、xとyを直接shapeRend.circle(x、y、r)メソッド呼び出しに入れましたが、私はちょうど異なる方法をテストしていました。どんな提案も役に立ちます。ありがとうございました。
何も設定しないと、shaperendererはピクセル座標を使用すると思います。最初にこれをテストし、それが動作することを知ったときに変換を追加することをお勧めします。 –