CPUParticles2D

    CPU-based 2D particle emitter.

    CPU-based 2D particle node used to create a variety of particle systems and effects.

    See also , which provides the same functionality with hardware acceleration, but may not run on older devices.

    Note: Unlike Particles2D, the visibility rect is generated on-the-fly and doesn’t need to be configured by the user.

    Tutorials

    Methods

    void

    ( Node particles )

    get_param ( param ) const

    Curve

    ( Parameter param ) const

    get_param_randomness ( param ) const

    bool

    ( Flags flag ) const

    void

    ( )

    void

    set_param ( param, float value )

    void

    ( Parameter param, curve )

    void

    set_param_randomness ( param, float randomness )

    void

    ( Flags flag, enable )

    enum DrawOrder:

    • DRAW_ORDER_INDEX = 0 —- Particles are drawn in the order emitted.

    • DRAW_ORDER_LIFETIME = 1 —- Particles are drawn in order of remaining lifetime.


    enum Parameter:


    enum Flags:

    • FLAG_ROTATE_Y = 1 —- Present for consistency with 3D particle nodes, not used in 2D.

    • FLAG_DISABLE_Z = 2 —- Present for consistency with 3D particle nodes, not used in 2D.

    • FLAG_MAX = 3 —- Represents the size of the Flags enum.


    enum EmissionShape:

    • EMISSION_SHAPE_POINT = 0 —- All particles will be emitted from a single point.

    • EMISSION_SHAPE_SPHERE = 1 —- Particles will be emitted on the surface of a sphere flattened to two dimensions.

    • EMISSION_SHAPE_RECTANGLE = 2 —- Particles will be emitted in the area of a rectangle.

    • EMISSION_SHAPE_POINTS = 3 —- Particles will be emitted at a position chosen randomly among . Particle color will be modulated by emission_colors.

    • EMISSION_SHAPE_DIRECTED_POINTS = 4 —- Particles will be emitted at a position chosen randomly among . Particle velocity and rotation will be set based on emission_normals. Particle color will be modulated by .

    • EMISSION_SHAPE_MAX = 5 —- Represents the size of the EmissionShape enum.

    Property Descriptions

    Default

    8

    Setter

    set_amount(value)

    Getter

    get_amount()

    The number of particles emitted in one emission cycle (corresponding to the ).

    Note: Changing amount will reset the particle emission, therefore removing all particles that were already emitted before changing .


    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Initial rotation applied to each particle, in degrees.


    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s rotation will be animated along this .


    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Rotation randomness ratio.


    • angular_velocity

    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Initial angular velocity applied to each particle in degrees per second. Sets the speed of rotation of the particle.


    • Curve angular_velocity_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s angular velocity will vary along this .


    • float angular_velocity_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Angular velocity randomness ratio.


    • anim_offset

    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Particle animation offset.


    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s animation offset will vary along this .


    • float anim_offset_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Animation offset randomness ratio.


    • anim_speed

    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Particle animation speed.


    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s animation speed will vary along this .


    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Animation speed randomness ratio.


    • color

    Default

    Color( 1, 1, 1, 1 )

    Setter

    set_color(value)

    Getter

    get_color()

    Each particle’s initial color. If texture is defined, it will be multiplied by this color.


    • color_initial_ramp

    Setter

    set_color_initial_ramp(value)

    Getter

    get_color_initial_ramp()

    Each particle’s initial color will vary along this GradientTexture (multiplied with ).


    Setter

    set_color_ramp(value)

    Getter

    get_color_ramp()

    Each particle’s color will vary along this (multiplied with color).


    • damping

    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    The rate at which particles lose velocity.


    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Damping will vary along this .


    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Damping randomness ratio.


    • direction

    Unit vector specifying the particles’ emission direction.


    Default

    0

    Setter

    set_draw_order(value)

    Getter

    get_draw_order()

    Particle draw order. Uses values.


    Setter

    set_emission_colors(value)

    Getter

    get_emission_colors()

    Sets the s to modulate particles by when using EMISSION_SHAPE_POINTS or .


    Setter

    set_emission_normals(value)

    Getter

    get_emission_normals()

    Sets the direction the particles will be emitted in when using .


    Setter

    set_emission_points(value)

    Getter

    get_emission_points()

    Sets the initial positions to spawn particles when using or EMISSION_SHAPE_DIRECTED_POINTS.


    • emission_rect_extents

    Setter

    set_emission_rect_extents(value)

    Getter

    get_emission_rect_extents()

    The rectangle’s extents if emission_shape is set to .


    Default

    0

    Setter

    set_emission_shape(value)

    Getter

    get_emission_shape()

    Particles will be emitted inside this region. See for possible values.


    • float emission_sphere_radius

    Setter

    set_emission_sphere_radius(value)

    Getter

    get_emission_sphere_radius()

    The sphere’s radius if is set to EMISSION_SHAPE_SPHERE.


    • emitting

    Default

    true

    Setter

    set_emitting(value)

    Getter

    is_emitting()

    If true, particles are being emitted.


    Default

    0.0

    Setter

    set_explosiveness_ratio(value)

    Getter

    get_explosiveness_ratio()

    How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins.


    • fixed_fps

    Default

    0

    Setter

    set_fixed_fps(value)

    Getter

    get_fixed_fps()

    The particle system’s frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.


    Default

    false

    Setter

    set_particle_flag(value)

    Getter

    get_particle_flag()

    Align Y axis of particle with the direction of its velocity.


    • fract_delta

    Default

    Setter

    set_fractional_delta(value)

    Getter

    get_fractional_delta()

    If true, results in fractional delta calculation which has a smoother particles display effect.


    Vector2( 0, 98 )

    Setter

    set_gravity(value)

    Getter

    get_gravity()

    Gravity applied to every particle.


    • hue_variation

    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Initial hue variation applied to each particle.


    • Curve hue_variation_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s hue will vary along this .


    • float hue_variation_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Hue variation randomness ratio.


    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Initial velocity magnitude for each particle. Direction comes from and the node’s orientation.


    • float initial_velocity_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Initial velocity randomness ratio.


    • lifetime

    Default

    1.0

    Setter

    set_lifetime(value)

    Getter

    get_lifetime()

    The amount of time each particle will exist (in seconds).


    • float lifetime_randomness

    Default

    0.0

    Setter

    set_lifetime_randomness(value)

    Getter

    get_lifetime_randomness()

    Particle lifetime randomness ratio.


    • linear_accel

    Linear acceleration applied to each particle in the direction of motion.


    • Curve linear_accel_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s linear acceleration will vary along this .


    • float linear_accel_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Linear acceleration randomness ratio.


    • local_coords

    Default

    true

    Setter

    set_use_local_coordinates(value)

    Getter

    get_use_local_coordinates()

    If true, particles use the parent node’s coordinate space. If false, they use global coordinates.


    Setter

    set_normalmap(value)

    Getter

    get_normalmap()

    Normal map to be used for the property.

    Note: Godot expects the normal map to use X+, Y-, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines.


    • one_shot

    Default

    false

    Setter

    set_one_shot(value)

    Getter

    get_one_shot()

    If true, only one emission cycle occurs. If set true during a cycle, emission will stop at the cycle’s end.


    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.


    • orbit_velocity_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s orbital velocity will vary along this Curve.


    • orbit_velocity_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Orbital velocity randomness ratio.


    Default

    0.0

    Setter

    set_pre_process_time(value)

    Getter

    get_pre_process_time()

    Particle system starts as if it had already run for this many seconds.


    • radial_accel

    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Radial acceleration applied to each particle. Makes particle accelerate away from origin.


    • Curve radial_accel_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s radial acceleration will vary along this .


    • float radial_accel_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Radial acceleration randomness ratio.


    • randomness

    Default

    0.0

    Setter

    set_randomness_ratio(value)

    Getter

    get_randomness_ratio()

    Emission lifetime randomness ratio.


    Default

    1.0

    Setter

    set_param(value)

    Getter

    get_param()

    Initial scale applied to each particle.


    • scale_amount_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s scale will vary along this Curve.


    • scale_amount_random

    Default

    0.0

    Setter

    set_param_randomness(value)

    Getter

    get_param_randomness()

    Scale randomness ratio.


    Default

    1.0

    Setter

    set_speed_scale(value)

    Getter

    get_speed_scale()

    Particle system’s running speed scaling ratio. A value of 0 can be used to pause the particles.


    • spread

    Default

    45.0

    Setter

    set_spread(value)

    Getter

    get_spread()

    Each particle’s initial direction range from +spread to -spread degrees.


    Default

    0.0

    Setter

    set_param(value)

    Getter

    get_param()

    Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle’s velocity giving the particles a swirling motion.


    • tangential_accel_curve

    Setter

    set_param_curve(value)

    Getter

    get_param_curve()

    Each particle’s tangential acceleration will vary along this Curve.


    • tangential_accel_random

    Tangential acceleration randomness ratio.


    Setter

    set_texture(value)

    Getter

    get_texture()

    Particle texture. If , particles will be squares.

    • void convert_from_particles ( Node particles )

    Sets this node’s properties to match a given node with an assigned ParticlesMaterial.


    Returns the base value of the parameter specified by .


    • Curve get_param_curve ( param ) const

    Returns the Curve of the parameter specified by .


    • float get_param_randomness ( param ) const

    Returns the randomness factor of the parameter specified by Parameter.


    • get_particle_flag ( Flags flag ) const

    Returns the enabled state of the given flag (see for options).


    • void restart ( )

    Restarts the particle emitter.


    Sets the base value of the parameter specified by Parameter.


    • void set_param_curve ( param, Curve curve )

    Sets the of the parameter specified by Parameter.


    Sets the randomness factor of the parameter specified by .


    • void set_particle_flag ( Flags flag, enable )

    Enables or disables the given flag (see Flags for options).