繁体   English   中英

libgdx-设置精灵颜色

[英]Libgdx - setting Sprite color

是否可以将.setColor(x,x,x,1)设置为如下所示的圆形边界:

在此处输入图片说明

否则我必须使用2个精灵,并且已经引用了500个精灵。 不想使用1000。

只需简单地使用两种不同的纹理,一种带有实心圆,另一种只有笔触。 使用libGDX Sprite类中的setTexture方法设置需要描边或填充圆的任何精灵的纹理。

这仍然是有效的,因为纹理仅需要加载一次,并且通过设置sprite的纹理,它仅将指针保存在内存中,而不是整个纹理。

要使用自定义着色器一次完成此操作,请以某种方式对源精灵进行编码。 像这样:

在此处输入图片说明

现在,您可以使用R通道作为插值因子在白色和边框颜色之间进行混合。 您可以从SpriteBatch源代码复制顶点着色器,然后将片段着色器主函数修改为如下所示:

vec4 texColor = texture2D(u_texture, v_texCoords);
gl_FragColor = vec4(mix(vec3(1.0), v_color.rgb, texColor.rrr), v_color.a * texColor.a);

我会遵循上面的TextureRegion想法,当您完成游戏时,如果然后遇到性能问题,那么我才真正担心这一点,但是有点担心着色器。

大多数人从来没有完成过游戏,因为他们在真正需要之前就陷入了细节问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM