我正在使用AndEngine进行动态壁纸项目,不过我认为我的问题应该是Android甚至Java的普遍问题。直到最近我才使用SVG作为我的图像由于缩放的好处,但是由于矢量艺术的图形限制我决定切换到PNG,我似乎无法弄清楚如何获得我以前的HSV着色适当地适用于新的精灵。
目前我基本上只是在sprite中推送一些HSV值,它在技术上有效,但不是很正确。我似乎没有像以前那样真正控制饱和度或值/亮度,它们似乎只有两个级别,就好像它们被立即设置为0.0或1.0,尽管颜色本身是非常黑暗,显然不是全价值/亮度和饱和度。
我没有看到我正在做什么和我对SVG图像的设置有什么真正的区别,所以我有点不知所措。据推测,在AndEngine深处的某个地方还有其他一些工作可以使它完全正常工作,而我现在还不知道它是什么工作。我或多或少使用的相关代码是:
float[] temphsv = new float[3];
int colorAfter = 0;
Sprite tempSprite = new Sprite(x, y, 400, 600, mSprite);
temphsv[0] = 120;
temphsv[1] = 1.0f;
temphsv[2] = 1.0f;
colorAfter = Color.HSVToColor(temphsv);
tempSprite.setColor(Color.red(colorAfter), Color.green(colorAfter), Color.blue(colorAfter));
从技术上讲,代码现在的方式是图像应该只是纯绿色,而是相当深绿色并仍然保留其阴影。我认为这是微不足道的,因为它可以很好地处理SVG图像,因此任何关于我缺少的内容的提示都会很棒。