Libgdx:在特定矩形中绘制actor

时间:2014-07-18 05:40:58

标签: android libgdx drawing

我试图在舞台上画一个Group个演员,但我只需要在舞台的特定区域画出它们。

例如假设我将舞台分为两部分(左右),然后我想在舞台的左侧部分画一些演员,所以如果其中一个演员向右走,那么它就不会绘制。

到目前为止,我尝试使用setCullingArea方法,但Actors突然消失,我想绘制一个演员的一部分,如果它在极限。

换句话说,我正在寻找一种绘制Group的遮罩区域。

感谢。

1 个答案:

答案 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);

    //...
}

如果你有其他演员需要跨越边界,你可以在启用剪裁之前先绘制它们,然后将它们设置为不可见。