【问题标题】:SpriteBatch and ShapeRenderer draw ordering in libgdxSpriteBatch 和 ShapeRenderer 在 libgdx 中绘制排序
【发布时间】:2018-04-14 14:26:42
【问题描述】:

我必须订购在屏幕上绘制的精灵和形状。

是否可以在 render 方法中多次调用 SpriteBatch 和 ShapeRenderer 的开始和结束。

有办法避免这种情况吗?

我的要求。

shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
shapeRenderer.rect(....);
shapeRenderer.end();


batch.begin();
for (int i = 0; i < spriteList.size(); i++) {
     spriteList.get(i).render(batch);
}
batch.end();

shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
shapeRenderer.setColor(Color.GRAY.r,Color.GRAY.g, Color.GRAY.b, 1);
shapeRenderer.rect(....);
shapeRenderer.end();

batch.begin();
score.render(batch);
batch.end();

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    不,没有。如果你有一个特定的绘制顺序并且需要不同的批次,你必须重复调用 end 和 begin 。 IMO 的设计很糟糕(从图书馆的角度来看),但这就是它的工作原理。

    没有解决方法,我怀疑是否会有任何解决方法。因此,每次更改渲染器时,您都会遇到调用 begin 和 end 的问题

    【讨论】:

      猜你喜欢
      • 2013-02-06
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      相关资源
      最近更新 更多