openclonk/docs/sdk/script/fn/HSL2RGB.xml

53 lines
2.0 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>HSL2RGB</title>
<category>Arithmetics</category>
<version>5.1 OC</version>
<syntax>
<rtype>int</rtype>
<params>
<param>
<type>int</type>
<name>Val</name>
<desc>24 bit HSL value</desc>
</param>
</params>
</syntax>
<desc>Converts a 24 bit HSL value into the better known 32 bit RGB format.<br/>The 24 bit HSL value can be created using <funclink>RGB</funclink>(hue, saturation, lightness).</desc>
<remark>Since there is no floating point data type in Clonk, these values may contain slight rounding errors (usually not greater than +1 to +1).</remark>
<examples>
<example>
<code> 2
#appendto Clonk
func Initialize() {
<funclink>AddEffect</funclink>(&quot;VariateHue&quot;,<funclink>this</funclink>(),200,1,<funclink>this</funclink>());
<funclink>return</funclink> <funclink>_inherited</funclink>();
}
func FxVariateHueTimer() {
var rgb, hsl=RGB2HSL(<funclink>GetColorDw</funclink>());
var hue, sat, light;
<funclink>SplitRGBaValue</funclink>(hsl, hue, sat, light);
hue+=2;
if(hue&gt;255) hue=0;
rgb=<funclink>HSL2RGB</funclink>(<funclink>RGB</funclink>(hue,sat,light));
<funclink>SetColorDw</funclink>(rgb);
}
</code>
<text>Creates an effect which will colorize every clonk in the game, running through the colors of the rainbow.<br/>To test this effects, best copy this function into a script contained in a scenario local System.ocg group.<br/>The hue value is deliberately increased by 2 in this sample, else rounding errors might cause nothing to happen.</text>
</example>
</examples>
<related>
<funclink>RGB2HSL</funclink>
<funclink>SetRGBaValue</funclink>
<funclink>RGB</funclink>
</related>
</func>
<author>Tyron</author><date>2004-09</date>
</funcs>