选关界面中有一个对图片进行加灰处理的操作,看了一下引擎中Entity的源码,其中有一个Color属性,原来以为这个属性代表的是颜色,仔细的研究之后发现Color属性并不完全代表实体的颜色,它代表的是对实体整个图像的处理,除了颜色之外还有色相、亮度、饱和度。
Andengine有个ColorUtil工具类可以根据属性值来生成Color对象。
/**
* @param pHue [0 .. 360)
* @param pSaturation [0...1]
* @param pValue [0...1]
*/
public static final Color convertHSVToColor(final float pHue, final float pSaturation, final float pValue) {
return ColorUtils.convertARGBPackedIntToColor(ColorUtils.convertHSVToARGBPackedInt(pHue, pSaturation, pValue));
}
这里pHue参数代表的就是色相、中间值180代表的是平衡的色相,偏高和偏低的色相值会让图像变色。
pSaturation代表的是饱和度。
pValue代表的是亮度,这里想要让图片变灰,简单的设置一个低亮度就可以达到目的。