我试图将纹理区域制作为像素图,但是按照准备好的方法,它将整个地图集复制到像素图中,因此建议循环每个像素并将其手动映射到另一个像素图
Pixmap emptyPixmap = new Pixmap(trLine.getRegionWidth(), trLine.getRegionHeight(), Pixmap.Format.RGBA8888);
Texture texture = trLine.getTexture();
texture.getTextureData().prepare();
Pixmap pixmap = texture.getTextureData().consumePixmap();
for (int x = 0; x < trLine.getRegionWidth(); x++) {
for (int y = 0; y < trLine.getRegionHeight(); y++) {
int colorInt = pixmap.getPixel(trLine.getRegionX() + x, trLine.getRegionY() + y);
emptyPixmap.drawPixel( trLine.getRegionX() + x , trLine.getRegionY() + y , colorInt );
}
}
trBlendedLine=new Texture(emptyPixmap);
但是生成的纹理没有绘制任何内容,这意味着getPixel没有获得正确的像素。请指教。
最佳答案
您正在使用trLine.getRegionX()+ x和trLine.getRegionY()+ y在像素图之外绘制像素。您应该拥有的是:
for (int x = 0; x < trLine.getRegionWidth(); x++) {
for (int y = 0; y < trLine.getRegionHeight(); y++) {
int colorInt = pixmap.getPixel(trLine.getRegionX() + x, trLine.getRegionY() + y);
emptyPixmap.drawPixel(x , y , colorInt );
}
}
关于java - 如何正确地将TextureRegion映射到Pixmap?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46928852/