制作演员剪辑儿童形象

时间:2015-04-04 15:23:32

标签: libgdx

我想要一个绘制drawable的actor,但将其剪辑为actor的大小。我从Widget派生这个类,并使用一些硬编码值作为一个简单的测试:

public class MyWidget extends Widget {

    public MyWidget(Drawable drawable) {
        setDrawable(drawable);
        setSize(100, 100);
    }

    public void draw(Batch batch, float parentAlpha) {
        clipBegin(getX(), getY(), 20, 20);

        drawable.draw(batch, getX(), getY(), 500, 500);

        clipEnd();
    }
}

虽然没有执行剪裁,但是drawable溢出了actor的边界。如果重要的话,这个演员是表的一部分。我相信我错误地使用了clipBegin()/ clipEnd()方法。这样做的正确方法是什么?

由于

1 个答案:

答案 0 :(得分:4)

这是我根据评论和我自己的实验发现的。在开始剪辑之前和绘制之后冲洗批次非常重要,以确保正确的绘图被剪裁。

public void draw(Batch batch, float parentAlpha) {
    batch.flush();
    if (clipBegin(getX(), getY(), 20.0f, 20.0f)) {
        //do your drawing here
        drawable.draw(batch, getX(), getY(), 500, 500);
        batch.flush();
        clipEnd();
    }
}