Libgdx 使演员剪辑儿童图像
我想要一个演员画一个可画的,但剪辑到演员的大小。我从Widget派生这个类,并使用一些硬编码值作为一个简单的测试:Libgdx 使演员剪辑儿童图像,libgdx,Libgdx,我想要一个演员画一个可画的,但剪辑到演员的大小。我从Widget派生这个类,并使用一些硬编码值作为一个简单的测试: public class MyWidget extends Widget { public MyWidget(Drawable drawable) { setDrawable(drawable); setSize(100, 100); } public void draw(Batch batch, float parent
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();
}
}
但不执行剪辑,可绘制的内容溢出到演员的边界之外。这个演员是桌子的一部分,如果有关系的话。我认为我没有正确使用clipBegin()/clipEnd()方法。正确的方法是什么
谢谢这是我根据评论和自己的实验发现的。在开始剪辑之前和绘图之后冲洗批处理非常重要,以确保剪辑正确的绘图
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();
}
}
不确定这是否是问题所在,但
clipBegin
返回一个布尔值,如果返回true,则只应调用clipEnd
。(文档非常稀疏,这意味着如果clip返回false,你也不应该调用draw),我想):你有没有发现这个问题?