Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java libgdx中的SpriteBatch和shaperender绘图顺序_Java_Libgdx - Fatal编程技术网

Java libgdx中的SpriteBatch和shaperender绘图顺序

Java libgdx中的SpriteBatch和shaperender绘图顺序,java,libgdx,Java,Libgdx,我必须订购屏幕上绘制的精灵和形状 在render方法中多次调用SpriteBatch和ShaperEnder的开始和结束是否可以 有没有办法避免这种情况 我的要求 shapeRenderer.begin(ShapeRenderer.ShapeType.Line); shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix()); shapeRenderer.rect(....); shapeRenderer.end(); batc

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

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

有没有办法避免这种情况

我的要求

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();
shaperender.begin(shaperender.ShapeType.Line);
setProjectionMatrix(batch.getProjectionMatrix());
整形器矩形(..);
shaperender.end();
batch.begin();
对于(int i=0;i
不,没有。如果你有一个特定的顺序,你想画的东西,需要不同的批次,你必须调用结束和开始重复。从图书馆的角度来看,这是一个糟糕的设计,但它就是这样工作的

在这方面没有解决办法,我怀疑会有任何解决办法。因此,每次更改渲染器时都必须调用begin和end