gpt4 book ai didi

java - SpriteBatch 和 ShapeRenderer 在 libgdx 中绘制顺序

转载 作者:搜寻专家 更新时间:2023-11-01 09:31:18 26 4
gpt4 key购买 nike

我必须对屏幕上绘制的 Sprite 和形状进行排序。

可以在渲染方法中多次调用 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();

最佳答案

不,没有。如果您有特定的绘制顺序并且需要不同的批处理,则必须重复调用 end 和 begin。 IMO(从图书馆方面)的设计很糟糕,但这就是它的工作原理。

没有变通办法,我怀疑是否会有变通办法。因此,每次更改渲染器时,您都必须调用 begin 和 end

关于java - SpriteBatch 和 ShapeRenderer 在 libgdx 中绘制顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47068940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com