CPUParticles2D¶
Inherits: Node2D < CanvasItem < Node < Object
CPU-based 2D particle emitter.
Description¶
CPU-based 2D particle node used to create a variety of particle systems and effects.
See also GPUParticles2D, which provides the same functionality with hardware acceleration, but may not run on older devices.
Tutorials¶
Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Methods¶
void |
convert_from_particles ( Node particles ) |
get_param_curve ( Parameter param ) const |
|
get_param_max ( Parameter param ) const |
|
get_param_min ( Parameter param ) const |
|
get_particle_flag ( ParticleFlags particle_flag ) const |
|
void |
restart ( ) |
void |
set_param_curve ( Parameter param, Curve curve ) |
void |
set_param_max ( Parameter param, float value ) |
void |
set_param_min ( Parameter param, float value ) |
void |
set_particle_flag ( ParticleFlags particle_flag, bool enable ) |
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_min, set_param_max, and set_param_curve to set initial velocity properties.
PARAM_ANGULAR_VELOCITY = 1 --- Use with set_param_min, set_param_max, and set_param_curve to set angular velocity properties.
PARAM_ORBIT_VELOCITY = 2 --- Use with set_param_min, set_param_max, and set_param_curve to set orbital velocity properties.
PARAM_LINEAR_ACCEL = 3 --- Use with set_param_min, set_param_max, and set_param_curve to set linear acceleration properties.
PARAM_RADIAL_ACCEL = 4 --- Use with set_param_min, set_param_max, and set_param_curve to set radial acceleration properties.
PARAM_TANGENTIAL_ACCEL = 5 --- Use with set_param_min, set_param_max, and set_param_curve to set tangential acceleration properties.
PARAM_DAMPING = 6 --- Use with set_param_min, set_param_max, and set_param_curve to set damping properties.
PARAM_ANGLE = 7 --- Use with set_param_min, set_param_max, and set_param_curve to set angle properties.
PARAM_SCALE = 8 --- Use with set_param_min, set_param_max, and set_param_curve to set scale properties.
PARAM_HUE_VARIATION = 9 --- Use with set_param_min, set_param_max, and set_param_curve to set hue variation properties.
PARAM_ANIM_SPEED = 10 --- Use with set_param_min, set_param_max, and set_param_curve to set animation speed properties.
PARAM_ANIM_OFFSET = 11 --- Use with set_param_min, set_param_max, and set_param_curve to set animation offset properties.
PARAM_MAX = 12 --- Represents the size of the Parameter enum.
enum ParticleFlags:
PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0 --- Use with set_particle_flag to set particle_flag_align_y.
PARTICLE_FLAG_ROTATE_Y = 1 --- Present for consistency with 3D particle nodes, not used in 2D.
PARTICLE_FLAG_DISABLE_Z = 2 --- Present for consistency with 3D particle nodes, not used in 2D.
PARTICLE_FLAG_MAX = 3 --- Represents the size of the ParticleFlags enum.
enum EmissionShape:
EMISSION_SHAPE_POINT = 0 --- All particles will be emitted from a single point.
EMISSION_SHAPE_SPHERE = 1 --- Particles will be emitted in the volume of a sphere flattened to two dimensions.
EMISSION_SHAPE_SPHERE_SURFACE = 2 --- Particles will be emitted on the surface of a sphere flattened to two dimensions.
EMISSION_SHAPE_RECTANGLE = 3 --- Particles will be emitted in the area of a rectangle.
EMISSION_SHAPE_POINTS = 4 --- Particles will be emitted at a position chosen randomly among emission_points. Particle color will be modulated by emission_colors.
EMISSION_SHAPE_DIRECTED_POINTS = 5 --- 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.
EMISSION_SHAPE_MAX = 6 --- Represents the size of the EmissionShape enum.
Property Descriptions¶
int amount
Default |
|
Setter |
set_amount(value) |
Getter |
get_amount() |
Number of particles emitted in one emission cycle.
Curve angle_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's rotation will be animated along this Curve.
float angle_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float angle_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Curve angular_velocity_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's angular velocity will vary along this Curve.
float angular_velocity_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float angular_velocity_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Curve anim_offset_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's animation offset will vary along this Curve.
float anim_offset_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float anim_offset_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Curve anim_speed_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's animation speed will vary along this Curve.
float anim_speed_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float anim_speed_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Color color
Default |
|
Setter |
set_color(value) |
Getter |
get_color() |
Each particle's initial color. If texture is defined, it will be multiplied by this color.
Gradient color_initial_ramp
Setter |
set_color_initial_ramp(value) |
Getter |
get_color_initial_ramp() |
Each particle's initial color will vary along this GradientTexture1D (multiplied with color).
Gradient color_ramp
Setter |
set_color_ramp(value) |
Getter |
get_color_ramp() |
Each particle's color will vary along this Gradient (multiplied with color).
Curve damping_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Damping will vary along this Curve.
float damping_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float damping_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Vector2 direction
Default |
|
Setter |
set_direction(value) |
Getter |
get_direction() |
Unit vector specifying the particles' emission direction.
DrawOrder draw_order
Default |
|
Setter |
set_draw_order(value) |
Getter |
get_draw_order() |
Particle draw order. Uses DrawOrder values.
PackedColorArray emission_colors
Setter |
set_emission_colors(value) |
Getter |
get_emission_colors() |
Sets the Colors to modulate particles by when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
PackedVector2Array emission_normals
Setter |
set_emission_normals(value) |
Getter |
get_emission_normals() |
Sets the direction the particles will be emitted in when using EMISSION_SHAPE_DIRECTED_POINTS.
PackedVector2Array emission_points
Setter |
set_emission_points(value) |
Getter |
get_emission_points() |
Sets the initial positions to spawn particles when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
Vector2 emission_rect_extents
Setter |
set_emission_rect_extents(value) |
Getter |
get_emission_rect_extents() |
The rectangle's extents if emission_shape is set to EMISSION_SHAPE_RECTANGLE.
EmissionShape emission_shape
Default |
|
Setter |
set_emission_shape(value) |
Getter |
get_emission_shape() |
Particles will be emitted inside this region. See EmissionShape for possible values.
float emission_sphere_radius
Setter |
set_emission_sphere_radius(value) |
Getter |
get_emission_sphere_radius() |
The sphere's radius if emission_shape is set to EMISSION_SHAPE_SPHERE.
bool emitting
Default |
|
Setter |
set_emitting(value) |
Getter |
is_emitting() |
If true
, particles are being emitted.
float explosiveness
Default |
|
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.
int fixed_fps
Default |
|
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.
bool 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 gravity
Default |
|
Setter |
set_gravity(value) |
Getter |
get_gravity() |
Gravity applied to every particle.
Curve hue_variation_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's hue will vary along this Curve.
float hue_variation_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float hue_variation_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
float initial_velocity_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float initial_velocity_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
float lifetime
Default |
|
Setter |
set_lifetime(value) |
Getter |
get_lifetime() |
Amount of time each particle will exist.
float lifetime_randomness
Default |
|
Setter |
set_lifetime_randomness(value) |
Getter |
get_lifetime_randomness() |
Particle lifetime randomness ratio.
Curve linear_accel_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's linear acceleration will vary along this Curve.
float linear_accel_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float linear_accel_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
bool local_coords
Default |
|
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.
bool one_shot
Default |
|
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.
Curve orbit_velocity_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's orbital velocity will vary along this Curve.
float orbit_velocity_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float orbit_velocity_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
bool particle_flag_align_y
Default |
|
Setter |
set_particle_flag(value) |
Getter |
get_particle_flag() |
Align Y axis of particle with the direction of its velocity.
float preprocess
Default |
|
Setter |
set_pre_process_time(value) |
Getter |
get_pre_process_time() |
Particle system starts as if it had already run for this many seconds.
Curve radial_accel_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's radial acceleration will vary along this Curve.
float radial_accel_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float radial_accel_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
float randomness
Default |
|
Setter |
set_randomness_ratio(value) |
Getter |
get_randomness_ratio() |
Emission lifetime randomness ratio.
Curve scale_amount_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's scale will vary along this Curve.
float scale_amount_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float scale_amount_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Curve scale_curve_x
Setter |
set_scale_curve_x(value) |
Getter |
get_scale_curve_x() |
Curve scale_curve_y
Setter |
set_scale_curve_y(value) |
Getter |
get_scale_curve_y() |
float speed_scale
Default |
|
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.
bool split_scale
Default |
|
Setter |
set_split_scale(value) |
Getter |
get_split_scale() |
float spread
Default |
|
Setter |
set_spread(value) |
Getter |
get_spread() |
Each particle's initial direction range from +spread
to -spread
degrees.
Curve tangential_accel_curve
Setter |
set_param_curve(value) |
Getter |
get_param_curve() |
Each particle's tangential acceleration will vary along this Curve.
float tangential_accel_max
Default |
|
Setter |
set_param_max(value) |
Getter |
get_param_max() |
float tangential_accel_min
Default |
|
Setter |
set_param_min(value) |
Getter |
get_param_min() |
Texture2D texture
Setter |
set_texture(value) |
Getter |
get_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 GPUParticles2D node with an assigned ParticlesMaterial.
Returns the Curve of the parameter specified by Parameter.
bool get_particle_flag ( ParticleFlags particle_flag ) const
Returns the enabled state of the given flag (see ParticleFlags for options).
void restart ( )
Restarts the particle emitter.
Sets the Curve of the parameter specified by Parameter.
void set_particle_flag ( ParticleFlags particle_flag, bool enable )
Enables or disables the given flag (see ParticleFlags for options).