java - 如何正确地将TextureRegion映射到Pixmap?

标签 java libgdx

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

    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/

相关文章:

java - 在 mongodb 中查找与集合不同的东西

java.net.URISyntaxException : Illegal character in path at index 75

java - 两种渲染方法在两个屏幕上同时工作

java - Apache Camel mockEndpoints() 模拟所有端点,而不是仅模拟建议路由中的端点

java - JSF 动态导航根本不起作用

java - libGDX:如何在按键后逐行读取和显示 .txt 文件中的文本?

java - libGDX 游戏分辨率设置为 1920x1080 需要缩小以适应较小的设备

java - ./gradlew桌面:run does not work but setting a configuration does : libgdx

android - libgdx 粒子效果旋转

java - UDACITY Sunshine Android 应用程序错误 - java.io.FileNotFoundException