LibGDX - batch.begin() 之间有什么不同;和 renderer.getBatch().begin();?

LibGDX - What is the different between batch.begin(); and renderer.getBatch().begin();?

我正在学习 LibGDX 使用 Tiled Map。我遇到了以下两种渲染方法。 第一个是我平时用的简单的

但是,我不明白为什么我们需要第二个。我可以使用 batch.begin();在方法 2 中也是如此。

谢谢

方法一

private Batch batch;

batch=new SpriteBatch();

public void Render(float delta){
......
    batch.begin();
    batch.draw(......); 
    batch.end();
}

方法二

private OrthogonalTiledMapRenderer renderer;
private Batch batch;

public void Render(float delta){
......

        renderer.getBatch().begin();
        renderer.getBatch().draw(......);
        renderer.getBatch().end();
}

差不多。 Here 你可以看到,如果你不向渲染器提供 Batch,它会自己创建一个 new Spritebatch()。但是,您也可以向渲染器提供自己的 Batch

OrthogonalTiledMapRenderer extends BatchTiledMapRendererwill callBatch.begin()end()本身,所以你不必关心那个。