我试图在舞台上画一个Group
个演员,但我只需要在舞台的特定区域画出它们。
例如假设我将舞台分为两部分(左右),然后我想在舞台的左侧部分画一些演员,所以如果其中一个演员向右走,那么它就不会绘制。
到目前为止,我尝试使用setCullingArea
方法,但Actors突然消失,我想绘制一个演员的一部分,如果它在极限。
换句话说,我正在寻找一种绘制Group
的遮罩区域。
感谢。
答案 0 :(得分:3)
您可以使用剪刀将剪辑剪切到屏幕的特定区域。
Rectangle leftSide;
Rectangle rightSide;
//...
public void resize(int width, int height){
//...
leftSide = new Rectangle(0,0,width/2, height);
rightSide = new Rectangle(width/2, 0, width/2, height);
}
public void render(){
//...
Gdx.gl.glEnable(GL20.GL_SCISSOR_TEST);
Gdx.gl.glScissor((int)leftSide.x, (int)leftSide.y, (int)leftSide.width, (int)leftSide.height);
//Draw stage with left side actors (set right group invisible)
//...
Gdx.gl.glScissor((int)rightSide.x, (int)rightSide.y, (int)rightSide.width, (int)rightSide.height);
//Draw stage with right side actors (set left group invisible)
//...
Gdx.gl.glDisable(GL20.GL_SCISSOR_TEST);
//...
}
如果你有其他演员需要跨越边界,你可以在启用剪裁之前先绘制它们,然后将它们设置为不可见。