我想剪辑屏幕的某个部分,因此不会绘制外部的所有部分。 我的代码如下所示:
public void draw(Camera camera, ShapeRenderer renderer){
Rectangle scissors = new Rectangle();
Rectangle clipBounds = new Rectangle(pos.x, pos.y, pos.x+width, pos.y+height);
ScissorStack.calculateScissors(camera, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), new Matrix4(), clipBounds, scissors);
renderer.begin(ShapeType.Filled);
ScissorStack.pushScissors(scissors);
for(Block[] row : blocks){
for(Block block : row)
block.draw(renderer);// draw some rects
}
ScissorStack.popScissors();
renderer.end();
}
但是这段代码没有效果,也就是绘制了位于clipBounds之外的形状。 我的代码出了什么问题?
问候
答案 0 :(得分:2)
直到renderer.end()
才会进行渲染,因此将其放入ScissorStack
。