1

我正在将 AndEngine 用于动态壁纸项目,尽管我认为我的问题应该完全适用于 Android 甚至 Java。直到最近,由于缩放优势,我还在为我的图像使用 SVG,但是由于矢量艺术的图形限制,我决定切换到 PNG,而且我似乎无法弄清楚如何获得我之前的 HSV 着色正确地应用于新的精灵。

目前我基本上只是将一些 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 图像,所以任何关于我所缺少的提示都会很棒。

4

0 回答 0