使用HSV着色灰度精灵

时间:2011-10-25 00:15:19

标签: android colors sprite andengine hsv

我正在使用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图像,因此任何关于我缺少的内容的提示都会很棒。

0 个答案:

没有答案