AttractorsBesides emitters a particle system can also contain attractors. An attractor attracts the particles (or pushes them away). A particle system can have multiple attractors. You are though recommended to use few of these because they will slow down the processing of the particles. An attractor has the following properties:
- x,y indicate the position of the attractor.
- force indicates the attracting force of the attractor. How the force acts on the particles depends on the following parameters.
- dist indicates the maximal distance at which the attractor has effect. Only particles closer that this distance to the attractor will be attracted.
- kind indicates the kind of attractor. The following values exist
- ps_force_constant indicates that the force is constant independent of the distance.
- ps_force_linear indicates a linearly growing force. At the maximal distance the force is 0 while at the position of the attractor it attains the given value.
- ps_force_quadratic indicates that the force grows quadratic.
- additive indicates whether the force is added to the speed and direction in each step (true) or only applied to the position of the particle (false). When additive the particle will accelerate towards the attractor while with a non-additive force it will move there with constant speed.
The following functions exist to define attractors. Note that each of them gets the index of the particle system to which it belongs as a first argument.
part_attractor_create(ps) Creates a new attractor in the given particle system. It returns the index of the attractor. This index must be used in all calls below to set the properties of the attractor.
part_attractor_destroy(ps,ind) Destroys attractor ind in the particle system. Call this if you don't need it anymore to save space.
part_attractor_destroy_all(ps) Destroys all attractors in the particle system that have been created.
part_attractor_exists(ps,ind) Returns whether the indicated attractor exists in the particle system.
part_attractor_clear(ps,ind) Clears the attractor ind to its default settings.
part_attractor_position(ps,ind,x,y) Sets the position of attractor ind to (x,y).
part_attractor_force(ps,ind,force,dist,kind,aditive) Sets the force parameters of attractor ind.