xSGE Particles

xSGE is a collection of extensions for the SGE licensed under the GNU General Public License. They are designed to give additional features to free/libre software games which aren’t necessary, but are nice to have.

xSGE extensions are not dependent on any particular SGE implementation. They should work with any implementation that follows the specification.

This extension provides particle effects for the SGE.

xsge_particle Classes

xsge_particle.Emitter

class xsge_particle.Emitter(x, y, z=0, interval=1, chance=1, particle_cls=<class 'xsge_particle.Particle'>, particle_args=None, particle_kwargs=None, particle_lambda_args=None, particle_lambda_kwargs=None, tangible=False, **kwargs)[source]

Class for object emitters. These are sge.dsp.Object objects which create other sge.dsp.Object objects of a specified class at a specified interval.

To randomize the way particles are created, extend event_create_particle() in a derived class.

Note

An alarm with the name "__emitter" in event_alarm() is used to control the timing. It is initially set by event_create().

interval

The number of frames to wait in between the creation of each particle (adjusted for delta timing).

chance

The chance (out of 1) of a particle actually being created at each iteration. This can be used to make particle generation uneven.

particle_cls

The class to use for the particles created. Any class derived from sge.dsp.Object will work.

particle_args

The ordered arguments to pass to created particles’ constructor methods. If set to None, an empty list is used.

particle_kwargs

The keyword arguments to pass to created particles’ constructor methods. If set to None, an empty dictionary is used.

particle_lambda_args

A list of functions which, when a particle is about to be created, are called and have the returned values passed to the particle’s constructor method instead of the corresponding index of particle_args. This emitter is passed to each of these functions as the first argument.

Values in the list set to None are ignored. If this list is longer than particle_args, any arguments not set by either of these lists are set to None.

If set to None, an empty list is used.

particle_lambda_kwargs

A dictionary of functions which, when a particle is about to be created, are called and have the returned values passed to the particle’s constructor method instead of the corresponding key of particle_kwargs. This emitter is passed to each of these functions as the first argument.

If set to None, an empty dictionary is used.

xsge_particle.Emitter Methods

Emitter.__init__(x, y, z=0, interval=1, chance=1, particle_cls=<class 'xsge_particle.Particle'>, particle_args=None, particle_kwargs=None, particle_lambda_args=None, particle_lambda_kwargs=None, tangible=False, **kwargs)[source]

Arguments set the respective initial attributes of the object. See the documentation for Emitter for more information.

x, y, z, tangible, and all arguments passed to kwargs are passed as the corresponding arguments to the constructor method of sge.dsp.Object.

xsge_particle.Emitter Event Methods

Emitter.event_create_particle(particle)[source]

Called immediately after the emitter creates a particle.

Arguments:

  • particle – The particle object just created.

xsge_particle.Particle

class xsge_particle.Particle(x, y, z=0, tangible=False, **kwargs)[source]

Base class for particles. It is identical to sge.dsp.Object, except that it is intangible by default.

xsge_particle.Particle Methods

Particle.__init__(x, y, z=0, tangible=False, **kwargs)[source]

x, y, z, tangible, and all arguments passed to kwargs are passed as the corresponding arguments to the constructor method of the parent class.

xsge_particle.AnimationParticle

class xsge_particle.AnimationParticle(x, y, z=0, tangible=False, **kwargs)[source]

Class for particle objects which animate once and are then destroyed. It is otherwise identical to Particle.

Note

event_animation_end() is used to control the destruction.

xsge_particle.TimedParticle

class xsge_particle.TimedParticle(x, y, z=0, life=None, tangible=False, **kwargs)[source]

Class for particle objects which are destroyed after a designated amount of time. It is otherwise identical to Particle.

Note

An alarm with the name "__life" in event_alarm() is used to control the timing. It is initially set by event_create().

life

The number of frames (adjusted for delta timing) after which the particle is destroyed. Setting this attribute resets the "__life" alarm to the given value. Set to None to disable timed destruction.

xsge_particle.TimedParticle Methods

TimedParticle.__init__(x, y, z=0, life=None, tangible=False, **kwargs)[source]

Arguments set the respective initial attributes of the object. See the documentation for TimedParticle for more information.

x, y, z, tangible, and all arguments passed to kwargs are passed as the corresponding arguments to the constructor method of the parent class.

xsge_particle.BubbleParticle

class xsge_particle.BubbleParticle(x, y, z=0, turn_factor=1, min_angle=180, max_angle=0, tangible=False, **kwargs)[source]

Class for particle objects which randomly change their move directions.

Note

event_step() is used to control this behavior. move_direction is manipulated.

turn_factor

The largest amount of rotation possible.

min_angle

The lowest possible angle permitted.

max_angle

The highest possible angle permitted.

xsge_particle.BubbleParticle Methods

BubbleParticle.__init__(x, y, z=0, turn_factor=1, min_angle=180, max_angle=0, tangible=False, **kwargs)[source]

Arguments set the respective initial attributes of the object. See the documentation for TimedParticle for more information.

x, y, z, tangible, and all arguments passed to kwargs are passed as the corresponding arguments to the constructor method of the parent class.

xsge_particle.AnimationBubbleParticle

class xsge_particle.AnimationBubbleParticle(x, y, z=0, turn_factor=1, min_angle=180, max_angle=0, tangible=False, **kwargs)[source]

Inherits the features of both AnimationParticle and BubbleParticle.

xsge_particle.TimedBubbleParticle

class xsge_particle.TimedBubbleParticle(x, y, z=0, life=None, tangible=False, **kwargs)[source]

Inherits the features of both TimedParticle and BubbleParticle.