我有一个需要在某些游戏点擦除的纹理。我认为最好用图片来澄清我的问题。
下面是实际纹理。
添加到舞台后,它是演员内部并在画面内调用。 下面是纹理的部分代码
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
batch.draw(trLine,position.x,position.y);
}
我想使用带有x,y,width和height的矩形擦除纹理的某些部分。它也可以多次使用。我如何实现这一目标?
补充:我发现一篇文章使用pixmap加载纹理并使用mask修改它。下面是代码,但不幸的是,它什么都没有。
Pixmap mask = new Pixmap(trLine.getRegionWidth(), trLine.getRegionWidth(), Pixmap.Format.Alpha);
mask.setBlending(Pixmap.Blending.None);
mask.setColor(0,0,0,0);
mask.fillRectangle((int)rec.x,(int)rec.y,(int)rec.width,(int)rec.height);
Pixmap fg = new Pixmap(trLine.getRegionWidth(), trLine.getRegionWidth(), Pixmap.Format.RGBA8888);
for (int x = 0; x < trLine.getRegionWidth(); x++) {
for (int y = 0; y < trLine.getRegionHeight(); y++) {
int colorInt = fg.getPixel(trLine.getRegionX() + x, trLine.getRegionY() + y);
fg.drawPixel(colorInt,trLine.getRegionX() + x , trLine.getRegionY() + y);
}
}
fg.drawPixmap(mask, fg.getWidth(), fg.getHeight());
mask.setBlending(Pixmap.Blending.SourceOver);
trBlendedLine=new Texture(fg);