Added helper function Particles_Colored - creates a colored version of a base particle.

stable-5.4
Sven Eberhardt 2013-12-29 15:08:52 +01:00
parent 649e06039f
commit 49b2c75475
2 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,44 @@
<?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>Particles_Colored</title>
<category>Particles</category>
<version>5.3.3 OC</version>
<syntax>
<rtype>proplist</rtype>
<params>
<param>
<type>proplist</type>
<name>prototype</name>
<desc>Particle prototype of which a colored version is returned.</desc>
</param>
<param>
<type>int</type>
<name>color1</name>
<desc>RGB color in format 0xRRGGBB</desc>
</param>
<param>
<type>int</type>
<name>color2</name>
<desc>Secondary color. If given, particles are created with a random color between color and color2.</desc>
<optional />
</param>
</params>
</syntax>
<desc>Creates a colored version of another particle definition.</desc>
<examples>
<example>
<code>CreateParticle("MagicSpark", 0,0, PV_Random(-10,10), PV_Random(-10,10), PV_Random(10,50), Particles_Colored(Particles_Spark(),0xff0000,0x00ff00), 15);</code>
<text>Creates 15 particles with coloration varying between red and green.</text>
</example>
</examples>
<remark>See the <emlink href="particle/index.html">particle documentation</emlink> for further explanations of the particle system.</remark>
<related>
<funclink>CreateParticle</funclink>
</related>
</func>
<author>Sven2</author><date>2013-12</date>
</funcs>

View File

@ -147,6 +147,27 @@ global func Particles_Spark()
};
}
global func Particles_Colored(prototype, color, color2)
{
// Colors the given particle. If color2 is given, colors in a random fade between color and color2
if (GetType(color2))
{
return {
Prototype = prototype,
R = PV_Random((color >> 16) & 0xff, (color2 >> 16) & 0xff),
G = PV_Random((color >> 8) & 0xff, (color2 >> 8) & 0xff),
B = PV_Random((color >> 0) & 0xff, (color2 >> 0) & 0xff),
};
}
else
return {
Prototype = prototype,
R = (color >> 16) & 0xff,
G = (color >> 8) & 0xff,
B = (color >> 0) & 0xff
};
}
global func Particles_SparkFire()
{
return