Java 如何将TextureRegion正确映射到Pixmap?

Java 如何将TextureRegion正确映射到Pixmap?,java,libgdx,Java,Libgdx,我试图将我的纹理区域制作成一个pixmap,但按照准备好的方法,它会将整个图集复制到pixmap中,因此建议我循环每个像素并手动将其映射到另一个pixmap中 Pixmap emptyPixmap = new Pixmap(trLine.getRegionWidth(), trLine.getRegionHeight(), Pixmap.Format.RGBA8888); Texture texture = trLine.getTexture(); texture.ge

我试图将我的纹理区域制作成一个pixmap,但按照准备好的方法,它会将整个图集复制到pixmap中,因此建议我循环每个像素并手动将其映射到另一个pixmap中

    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在pixmap之外绘制像素。你应该做的是:

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 );
    }
}

方法trLine.getTexture获取纹理区域的整个纹理。如果您只是想使用trline特定区域,您是否尝试过此解决方案:@MilanG是的,我正在尝试此解决方案,但无法使用它textureRegion@dfour谢谢你提供的信息,但我需要使用PixMap方法将textureregion映射到PixMap这是我代码中的一个明显错误,顺便说一句,我意识到,要实现我想要的效果,pixmap是非常昂贵的,比如从纹理中删除多边形形状