【问题标题】:Libgdx, sprite batch and setColor to specific regionLibgdx,精灵批处理和 setColor 到特定区域
【发布时间】:2016-02-09 09:34:37
【问题描述】:

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

像这样: http://s9.postimg.org/qh7bbu5an/FINAL.png

  1. 我的原始纹理
  2. 第二个纹理,带有我想要改变颜色的区域
  3. 我的纹理在应用中的结果与 batch.setcolor 类似,但仅适用于纹理中的特定区域(像素)

【问题讨论】:

  • 另外,这个红色/白色圆圈的功能是什么,只是一个标志,表示您的应用程序中的某些设置或状态?
  • 我想出了我想要实现的目标:D。我需要一个面具。所以第二个纹理是我的蒙版,第一个是输入纹理。首先,我渲染我的第一个没有蒙版区域的纹理,然后我从第一个纹理中渲染我的蒙版区域,并使用批次的自定义颜色。问题仍然存在,如何实现这一目标:/

标签: libgdx textures spritebatch


【解决方案1】:

如果您正在寻找一起屏蔽纹理的示例,可以查看本教程。

https://github.com/mattdesl/lwjgl-basics/wiki/ShaderLesson4

它还有一个到 libGDX 的端口。

【讨论】:

  • 我明白,但我的目标是为纹理中的特定区域添加颜色。例如:我有 image1 而不是绿色圆圈,而不是白色圆圈,我有 image2,但它是黑白的,现在我想将 image2 的颜色更改为黄色。这行不通:/
  • 我明白了,为什么只有一个纹理对象很重要?
  • 我的资产集合中有很多纹理(比如 3000 个),我只想减少其他纹理的数量 :)
  • 使用TextureRegion,使用纹理打包器可以将你的纹理打包成一个大的,这样只会加载一个对象而不是3000。你试过这个解决方案吗?
  • 不幸的是:/TextureRegion 对于少量纹理来说是非常好的解决方案。我只是不想杀死我的 RAM,因为整个 textureRegion 都会在我的内存中(我已经检查过了),并且我想在将来使用我自己的纹理包格式:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
相关资源
最近更新 更多