hgeParticleSystemInfo Structure

hgeParticleSystemInfo structure is used to define all particle system parameters:

struct hgeParticleSystemInfo
{
  hgeSprite*  sprite;
  int         nEmission;
  float       fLifetime;

  float       fParticleLifeMin;
  float       fParticleLifeMax;

  float       fDirection;
  float       fSpread;
  bool        bRelative;

  float       fSpeedMin;
  float       fSpeedMax;

  float       fGravityMin;
  float       fGravityMax;

  float       fRadialAccelMin;
  float       fRadialAccelMax;

  float       fTangentialAccelMin;
  float       fTangentialAccelMax;

  float       fSizeStart;
  float       fSizeEnd;
  float       fSizeVar;

  float       fSpinStart;
  float       fSpinEnd;
  float       fSpinVar;

  hgeColor    colColorStart;
  hgeColor    colColorEnd;
  float       fColorVar;
  float       fAlphaVar;
};

Members

sprite
Pointer to a hgeSprite object to use for rendering particles. Probably, the most useful sprite's parameters here are texture, blending mode and anchor point. Besides the hgeSprite itself you may use here hgeAnimation or other classes derived from it.
nEmission
Number of particles to be emitted each second. Note that maximum number of particles simultaneously allowed in one particle system is 500. If this number is exceeded, new particles wouldn't be created until some of the current particles die. The number of simultaneously alive aprticles depends on nEmission, fParticleLifeMin and fParticleLifeMax members.
fLifetime
The period of time during which the particle system should emit particles (in seconds). When this amount of time is passed since call to the Fire method, the particles are no more emitted. If = -1.0 the particle system keeps emitting particles until stopped manually.
fParticleLifeMin
The minimum period of lifetime for a specific particle in seconds.
fParticleLifeMax
The maximum period of lifetime for a specific particle in seconds.
fDirection
This is an angle in radians, defining the particles emitting direction.
fSpread
This is an angle in radians, defining the sector within which the particles are emitted. For example, if it is 0.5, the emitted particles direction lies within fDirection-0.5 and fDirection+0.5. If the fSpread is 2*pi, the fDirection parameter becomes meaningless as the whole circle is covered.
bRelative
If true, the fDirection member is treated relatively to the current particle system movement direction. If false, the fDirection member is treated absolutely (0 means straight up).
fSpeedMin
The minimum starting speed for a specific particle in pixels per second.
fSpeedMax
The maximum starting speed for a specific particle in pixels per second.
fGravityMin
The minimum gravity value for a specific particle. The gravity is basically just an acceleration along the y-axis.
fGravityMax
The maximum gravity value for a specific particle. The gravity is basically just an acceleration along the y-axis.
fRadialAccelMin
The minimum value of the acceleration directed towards the particle system's center for a specific particle.
fRadialAccelMax
The maximum value of the acceleration directed towards the particle system's center for a specific particle.
fTangentialAccelMin
The minimum value of the acceleration directed perpendicularly to the radial acceleration for a specific particle.
fTangentialAccelMax
The maximum value of the acceleration directed perpendicularly to the radial acceleration for a specific particle.
fSizeStart
The starting scaling for a specific particle. 1.0 means the default sprite's size.
fSizeEnd
The ending scaling for a specific particle. 1.0 means the default sprite's size.
fSizeVar
The starting scaling variation from 0.0 (means no variation) to 1.0 (means random variation from fSizeStart to fSizeEnd).
fSpinStart
The starting spin for a specific particle in radians.
fSpinEnd
The ending spin for a specific particle in radians.
fSpinVar
The starting spin variation from 0.0 (means no variation) to 1.0 (means random variation from fSpinStart to fSpinEnd).
colColorStart
The starting color and opacity for a specific particle. See hgeColor class for details.
If colColorStart.r == -1 a special coloring mode is turned on: the particle system stops altering RGB of it's sprite and uses the color already set in it (the same for all particles). Only the alpha component is changed for each particle.
colColorEnd
The ending color and opacity for a specific particle. See hgeColor class for details.
fColorVar
The starting color variation from 0.0 (means no variation) to 1.0 (means random variation between the starting and ending colors).
fAlphaVar
The starting opacity variation from 0.0 (means no variation) to 1.0 (means random variation between the starting and ending opacities).

Requirements

Header: hgeparticle.h