CPUParticles2D

Inherits: Node2D < CanvasItem < Node < Object

Category: Core

Brief Description

CPU-based 2D particle emitter.

Properties

intamount
floatangle
Curveangle_curve
floatangle_random
floatangular_velocity
Curveangular_velocity_curve
floatangular_velocity_random
floatanim_offset
Curveanim_offset_curve
floatanim_offset_random
floatanim_speed
Curveanim_speed_curve
floatanim_speed_random
Colorcolor
Gradientcolor_ramp
floatdamping
Curvedamping_curve
floatdamping_random
DrawOrderdraw_order
PoolColorArrayemission_colors
PoolVector2Arrayemission_normals
PoolVector2Arrayemission_points
Vector2emission_rect_extents
EmissionShapeemission_shape
floatemission_sphere_radius
boolemitting
floatexplosiveness
intfixed_fps
boolflag_align_y
floatflatness
boolfract_delta
Vector2gravity
floathue_variation
Curvehue_variation_curve
floathue_variation_random
floatinitial_velocity
floatinitial_velocity_random
floatlifetime
floatlinear_accel
Curvelinear_accel_curve
floatlinear_accel_random
boollocal_coords
Texturenormalmap
boolone_shot
floatpreprocess
floatradial_accel
Curveradial_accel_curve
floatradial_accel_random
floatrandomness
floatscale_amount
Curvescale_amount_curve
floatscale_amount_random
floatspeed_scale
floatspread
floattangential_accel
Curvetangential_accel_curve
floattangential_accel_random
Texturetexture

Methods

voidconvert_from_particles ( Node particles )
voidrestart ( )

Enumerations

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:

  • PARAM_INITIAL_LINEAR_VELOCITY = 0 — Use with set_param, set_param_randomness, and set_param_texture to set initial velocity properties.
  • PARAM_ANGULAR_VELOCITY = 1 — Use with set_param, set_param_randomness, and set_param_texture to set angular velocity properties.
  • PARAM_ORBIT_VELOCITY = 2 — Use with set_param, set_param_randomness, and set_param_texture to set orbital velocity properties.
  • PARAM_LINEAR_ACCEL = 3 — Use with set_param, set_param_randomness, and set_param_texture to set linear acceleration properties.
  • PARAM_RADIAL_ACCEL = 4 — Use with set_param, set_param_randomness, and set_param_texture to set radial acceleration properties.
  • PARAM_TANGENTIAL_ACCEL = 5 — Use with set_param, set_param_randomness, and set_param_texture to set tangential acceleration properties.
  • PARAM_DAMPING = 6 — Use with set_param, set_param_randomness, and set_param_texture to set damping properties.
  • PARAM_ANGLE = 7 — Use with set_param, set_param_randomness, and set_param_texture to set angle properties.
  • PARAM_SCALE = 8 — Use with set_param, set_param_randomness, and set_param_texture to set scale properties.
  • PARAM_HUE_VARIATION = 9 — Use with set_param, set_param_randomness, and set_param_texture to set hue variation properties.
  • PARAM_ANIM_SPEED = 10 — Use with set_param, set_param_randomness, and set_param_texture to set animation speed properties.
  • PARAM_ANIM_OFFSET = 11 — Use with set_param, set_param_randomness, and set_param_texture to set animation offset properties.
  • PARAM_MAX = 12 — Represents the size of the Parameter enum.

enum Flags:

  • FLAG_ALIGN_Y_TO_VELOCITY = 0 — Use with set_flag to set flag_align_y.
  • FLAG_MAX = 1

enum EmissionShape:

  • EMISSION_SHAPE_POINT = 0 — All particles will be emitted from a single point.
  • EMISSION_SHAPE_CIRCLE = 1 — Particles will be emitted on the perimeter of a circle.
  • 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 emission_points. Particle color will be modulated by emission_colors.
  • EMISSION_SHAPE_DIRECTED_POINTS = 4 — Particles will be emitted at a position chosen randomly among emission_points. Particle velocity and rotation will be set based on emission_normals. Particle color will be modulated by emission_colors.

Description

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

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

Tutorials

Property Descriptions

Setterset_amount(value)
Getterget_amount()

Number of particles emitted in one emission cycle.


Setterset_param(value)
Getterget_param()

Initial rotation applied to each particle, in degrees.


Setterset_param_curve(value)
Getterget_param_curve()

Each particle’s rotation will be animated along this Curve.


Setterset_param_randomness(value)
Getterget_param_randomness()

Rotation randomness ratio. Default value: 0.


Setterset_param(value)
Getterget_param()

Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.


  • Curve angular_velocity_curve
Setterset_param_curve(value)
Getterget_param_curve()

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


  • float angular_velocity_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Angular velocity randomness ratio. Default value: 0.


Setterset_param(value)
Getterget_param()

Particle animation offset.


Setterset_param_curve(value)
Getterget_param_curve()

Each particle’s animation offset will vary along this Curve.


  • float anim_offset_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Animation offset randomness ratio. Default value: 0.


Setterset_param(value)
Getterget_param()

Particle animation speed.


Setterset_param_curve(value)
Getterget_param_curve()

Each particle’s animation speed will vary along this Curve.


Setterset_param_randomness(value)
Getterget_param_randomness()

Animation speed randomness ratio. Default value: 0.


Setterset_color(value)
Getterget_color()

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


Setterset_color_ramp(value)
Getterget_color_ramp()

Each particle’s color will vary along this Gradient.


Setterset_param(value)
Getterget_param()

The rate at which particles lose velocity.


Setterset_param_curve(value)
Getterget_param_curve()

Damping will vary along this Curve.


Setterset_param_randomness(value)
Getterget_param_randomness()

Damping randomness ratio. Default value: 0.


Setterset_draw_order(value)
Getterget_draw_order()

Particle draw order. Uses DrawOrder values. Default value: DRAW_ORDER_INDEX.


Setterset_emission_colors(value)
Getterget_emission_colors()

Setterset_emission_normals(value)
Getterget_emission_normals()

Setterset_emission_points(value)
Getterget_emission_points()

Setterset_emission_rect_extents(value)
Getterget_emission_rect_extents()

The rectangle’s extents if emission_shape is set to EMISSION_SHAPE_RECTANGLE.


Setterset_emission_shape(value)
Getterget_emission_shape()

Particles will be emitted inside this region. Use EmissionShape for values. Default value: EMISSION_SHAPE_POINT.


  • float emission_sphere_radius
Setterset_emission_sphere_radius(value)
Getterget_emission_sphere_radius()

The circle’s radius if emission_shape is set to EMISSION_SHAPE_CIRCLE.


Setterset_emitting(value)
Getteris_emitting()

If true, particles are being emitted. Default value: true.


Setterset_explosiveness_ratio(value)
Getterget_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. Default value: 0.


Setterset_fixed_fps(value)
Getterget_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.


Setterset_particle_flag(value)
Getterget_particle_flag()

Align y-axis of particle with the direction of its velocity.


Setterset_flatness(value)
Getterget_flatness()

Setterset_fractional_delta(value)
Getterget_fractional_delta()

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


Setterset_gravity(value)
Getterget_gravity()

Gravity applied to every particle. Default value: (0, 98).


Setterset_param(value)
Getterget_param()

Initial hue variation applied to each particle.


  • Curve hue_variation_curve
Setterset_param_curve(value)
Getterget_param_curve()

Each particle’s hue will vary along this Curve.


  • float hue_variation_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Hue variation randomness ratio. Default value: 0.


Setterset_param(value)
Getterget_param()

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


  • float initial_velocity_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Initial velocity randomness ratio. Default value: 0.


Setterset_lifetime(value)
Getterget_lifetime()

Amount of time each particle will exist. Default value: 1.


Setterset_param(value)
Getterget_param()

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


  • Curve linear_accel_curve
Setterset_param_curve(value)
Getterget_param_curve()

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


  • float linear_accel_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Linear acceleration randomness ratio. Default value: 0.


Setterset_use_local_coordinates(value)
Getterget_use_local_coordinates()

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


Setterset_normalmap(value)
Getterget_normalmap()

Normal map to be used for the texture property.


Setterset_one_shot(value)
Getterget_one_shot()

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


Setterset_pre_process_time(value)
Getterget_pre_process_time()

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


Setterset_param(value)
Getterget_param()

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


  • Curve radial_accel_curve
Setterset_param_curve(value)
Getterget_param_curve()

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


  • float radial_accel_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Radial acceleration randomness ratio. Default value: 0.


Setterset_randomness_ratio(value)
Getterget_randomness_ratio()

Emission lifetime randomness ratio. Default value: 0.


Setterset_param(value)
Getterget_param()

Initial scale applied to each particle.


  • Curve scale_amount_curve
Setterset_param_curve(value)
Getterget_param_curve()

Each particle’s scale will vary along this Curve.


  • float scale_amount_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Scale randomness ratio. Default value: 0.


Setterset_speed_scale(value)
Getterget_speed_scale()

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


Setterset_spread(value)
Getterget_spread()

Each particle’s initial direction range from +spread to -spread degrees. Default value: 45.


Setterset_param(value)
Getterget_param()

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


  • Curve tangential_accel_curve
Setterset_param_curve(value)
Getterget_param_curve()

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


  • float tangential_accel_random
Setterset_param_randomness(value)
Getterget_param_randomness()

Tangential acceleration randomness ratio. Default value: 0.


Setterset_texture(value)
Getterget_texture()

Particle texture. If null particles will be squares.

Method Descriptions

  • void convert_from_particles ( Node particles )

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


  • void restart ( )

Restarts the particle emitter.