我在libgdx中尝试停止渲染组外的actor,以及组内的一些矩形,下面是一个例子
----------------------
----------------------
--******************--
--******************--
--*****--------*****--
--******************--
--******************--
----------------------
----------------------
该组被定义为*
,我希望演员被绘制,-
是我希望演员剪裁的地方。
我已经设法使用以下代码剪辑该组之外的任何演员;
Rectangle scissors = new Rectangle();
Rectangle clipBounds = new Rectangle(getX(), getY(), getWidth(), getHeight());
ScissorStack.calculateScissors(screen.getCamera(), screen.getBatch().getTransformMatrix(), clipBounds, scissors);
ScissorStack.pushScissors(scissors);
super.draw(batch, parentAlpha);
batch.flush();
ScissorStack.popScissors();
我怎样才能剪辑组内的actor(我尝试添加其他剪辑边界但是它只渲染两个剪辑框内的精灵)。
谢谢,
答案 0 :(得分:0)
我不认为你可以筑巢内部"反剪刀"剪刀区域内的区域。因此,据我所知,您不能使用基本的Libgdx / OpenGL原语来实现此目的。
你可以通过重新画出最内在的" ------"来完成类似的事情。绘制你的演员之后的区域(" ***"东西)。
或者,您可以使用模板缓冲区或深度缓冲区或自定义片段着色器。 (有关想法,请参阅https://github.com/mattdesl/lwjgl-basics/wiki/LibGDX-Masking。)