在LibGdx中处理纹理

在LibGdx中处理纹理,libgdx,Libgdx,我使用下面提到的常用方法createSinglePixelTexture()创建具有指定颜色的单个像素 问题: 1.我需要处理“singlePixelPixmap”和纹理“t”吗? 2.如果我需要处理,我可以在哪里处理 singlePixelTexture = createSinglePixelTexture(0.129f, 0.129f, 0.129f, .7f); private Texture createSinglePixelTexture(float r,float g,floa

我使用下面提到的常用方法createSinglePixelTexture()创建具有指定颜色的单个像素

问题: 1.我需要处理“singlePixelPixmap”和纹理“t”吗? 2.如果我需要处理,我可以在哪里处理

singlePixelTexture = createSinglePixelTexture(0.129f, 0.129f, 0.129f, .7f);



private Texture createSinglePixelTexture(float r,float g,float b,float a) {
    Pixmap singlePixelPixmap; 
    singlePixelPixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
    singlePixelPixmap.setColor(r, g, b, a);
    singlePixelPixmap.fill();
    PixmapTextureData textureData = new PixmapTextureData(singlePixelPixmap, Pixmap.Format.RGBA8888, false, false, true);
    Texture t = new Texture(textureData);
    t.setFilter(TextureFilter.Nearest, TextureFilter.Nearest);
    return t; 
}
  • 您不需要中介
    PixmapTextureData
    ;这完全是可选的
  • 只要使用
    Pixmap
    创建
    纹理
    ,就可以处理
    Pixmap
    。因此,您可以在
    返回之前插入除纹理之外的所有处理
  • 一旦处理了
    纹理
    ,就无法绘制该纹理。不要处理
    t
    ,除非您确定不再尝试绘制它

  • 你必须把它处理掉!但是,我们无法告诉您何时可以处理它。这取决于你。。。您可以在不再使用它时处理它。但是变量“singlePixelPixmap”和“t”无法处理,因为范围在方法createSinglePixelTexture()内。我们无法在返回语句之前处理它。这里的任何建议您必须将纹理处理出此范围,当然,因为您返回了它。我认为您还可以将pixmap设置为“托管”,这将导致在处理纹理时也处理它。我确信我必须处理纹理“singlePixelTexture”,它不在方法createSinglePixelTexture()的范围内。createSinglePixelTexture()中的“singlePixelPixmap”和“t”如何。另外,请让我知道什么是pixmap“托管”,看起来您试图解决错误的问题。你真的应该重新考虑你的方法。简单地在你的地图册中添加一个3×3像素的完全不透明的白色图像(1×1也可以,但稍微扩展一下也无妨)。然后您可以着色(例如,
    setColor
    ),而不是每次创建一个新纹理。我理解,您能告诉我我的方法createSinglePixelTexture()中的dispose来自哪里吗。