Libgdx、sprite batch和setColor到特定区域

Libgdx、sprite batch和setColor到特定区域,libgdx,textures,spritebatch,Libgdx,Textures,Spritebatch,所以我有一个简单的纹理:一个大的绿色圆圈在中心,一个小的白色圆圈也在我的纹理中心。现在我想在我的应用程序中将白色圆圈的颜色改为黄色。是否有可能,为特定区域设置批次颜色的最佳方法是什么?我看到在其他引擎中使用第二个纹理(带有标记区域)可以改变颜色 就像这样: 我的原始纹理 第二个纹理,带有我要更改的颜色区域 应用程序中我的纹理的结果,它将像batch.setcolor一样工作,但仅适用于纹理中的特定区域(像素) 如果您正在寻找一起遮罩纹理的示例,可以查看本教程 它还有一个到libGDX的端口。

所以我有一个简单的纹理:一个大的绿色圆圈在中心,一个小的白色圆圈也在我的纹理中心。现在我想在我的应用程序中将白色圆圈的颜色改为黄色。是否有可能,为特定区域设置批次颜色的最佳方法是什么?我看到在其他引擎中使用第二个纹理(带有标记区域)可以改变颜色

就像这样:

  • 我的原始纹理
  • 第二个纹理,带有我要更改的颜色区域
  • 应用程序中我的纹理的结果,它将像batch.setcolor一样工作,但仅适用于纹理中的特定区域(像素)

  • 如果您正在寻找一起遮罩纹理的示例,可以查看本教程


    它还有一个到libGDX的端口。

    我理解,但我的目标是为纹理中的特定区域添加颜色。例如:我用图像1代替绿色圆圈,我用图像2代替白色圆圈,但它是黑白的,现在我想把图像2的颜色改成黄色。这行不通:/我明白了,为什么只有一个纹理对象很重要?我的资产集合中有许多纹理(如3000),我只想减少其他纹理的数量:)使用then TextureRegion,使用纹理打包器,您可以将纹理打包成一个大的,这样只会加载一个对象,而不是3000个。您尝试过此解决方案吗?很遗憾,是的:/TextureRegion对于少量纹理是非常好的解决方案。我只是不想杀死我的RAM,因为整个textureRegion都会在我的记忆中(我已经检查过了),我想在将来使用我自己的纹理包格式:)另一件事,这个红/白圆圈的功能是什么,只是一个标志,这表明你的应用程序中存在某种设置或状态?我想知道我想要实现什么:D。我需要一个掩码。第二个纹理是我的蒙版,第一个是输入纹理。首先,我渲染没有遮罩区域的第一个纹理,然后使用批处理的自定义颜色从第一个纹理渲染遮罩区域。问题仍然是,如何实现这一点:/