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 Particles2D, 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¶
Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
physics_interpolation_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Methods¶
void |
convert_from_particles ( Node particles ) |
get_param_curve ( Parameter param ) const |
|
get_param_randomness ( Parameter param ) const |
|
get_particle_flag ( Flags flag ) const |
|
void |
restart ( ) |
void |
|
void |
set_param_curve ( Parameter param, Curve curve ) |
void |
set_param_randomness ( Parameter param, float randomness ) |
void |
set_particle_flag ( Flags flag, bool enable ) |
Enumerations¶
enum DrawOrder:
DrawOrder DRAW_ORDER_INDEX = 0
Particles are drawn in the order emitted.
DrawOrder DRAW_ORDER_LIFETIME = 1
Particles are drawn in order of remaining lifetime.
enum Parameter:
Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0
Use with set_param, set_param_randomness, and set_param_curve to set initial velocity properties.
Parameter PARAM_ANGULAR_VELOCITY = 1
Use with set_param, set_param_randomness, and set_param_curve to set angular velocity properties.
Parameter PARAM_ORBIT_VELOCITY = 2
Use with set_param, set_param_randomness, and set_param_curve to set orbital velocity properties.
Parameter PARAM_LINEAR_ACCEL = 3
Use with set_param, set_param_randomness, and set_param_curve to set linear acceleration properties.
Parameter PARAM_RADIAL_ACCEL = 4
Use with set_param, set_param_randomness, and set_param_curve to set radial acceleration properties.
Parameter PARAM_TANGENTIAL_ACCEL = 5
Use with set_param, set_param_randomness, and set_param_curve to set tangential acceleration properties.
Parameter PARAM_DAMPING = 6
Use with set_param, set_param_randomness, and set_param_curve to set damping properties.
Parameter PARAM_ANGLE = 7
Use with set_param, set_param_randomness, and set_param_curve to set angle properties.
Parameter PARAM_SCALE = 8
Use with set_param, set_param_randomness, and set_param_curve to set scale properties.
Parameter PARAM_HUE_VARIATION = 9
Use with set_param, set_param_randomness, and set_param_curve to set hue variation properties.
Parameter PARAM_ANIM_SPEED = 10
Use with set_param, set_param_randomness, and set_param_curve to set animation speed properties.
Parameter PARAM_ANIM_OFFSET = 11
Use with set_param, set_param_randomness, and set_param_curve to set animation offset properties.
Parameter PARAM_MAX = 12
Represents the size of the Parameter enum.
enum Flags:
Flags FLAG_ALIGN_Y_TO_VELOCITY = 0
Use with set_particle_flag to set flag_align_y.
Flags FLAG_ROTATE_Y = 1
Present for consistency with 3D particle nodes, not used in 2D.
Flags FLAG_DISABLE_Z = 2
Present for consistency with 3D particle nodes, not used in 2D.
Flags FLAG_MAX = 3
Represents the size of the Flags enum.
enum EmissionShape:
EmissionShape EMISSION_SHAPE_POINT = 0
All particles will be emitted from a single point.
EmissionShape EMISSION_SHAPE_SPHERE = 1
Particles will be emitted on the surface of a sphere flattened to two dimensions.
EmissionShape EMISSION_SHAPE_RECTANGLE = 2
Particles will be emitted in the area of a rectangle.
EmissionShape EMISSION_SHAPE_POINTS = 3
Particles will be emitted at a position chosen randomly among emission_points. Particle color will be modulated by emission_colors.
EmissionShape 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.
EmissionShape EMISSION_SHAPE_MAX = 5
Represents the size of the EmissionShape enum.
Property Descriptions¶
int amount = 8
The number of particles emitted in one emission cycle (corresponding to the lifetime).
Note: Changing amount will reset the particle emission, therefore removing all particles that were already emitted before changing amount.
float angle = 0.0
Initial rotation applied to each particle, in degrees.
Curve angle_curve
Each particle's rotation will be animated along this Curve.
float angle_random = 0.0
Rotation randomness ratio.
float angular_velocity = 0.0
Initial angular velocity applied to each particle in degrees per second. Sets the speed of rotation of the particle.
Curve angular_velocity_curve
Each particle's angular velocity will vary along this Curve.
float angular_velocity_random = 0.0
Angular velocity randomness ratio.
float anim_offset = 0.0
Particle animation offset.
Curve anim_offset_curve
Each particle's animation offset will vary along this Curve.
float anim_offset_random = 0.0
Animation offset randomness ratio.
float anim_speed = 0.0
Particle animation speed.
Curve anim_speed_curve
Each particle's animation speed will vary along this Curve.
float anim_speed_random = 0.0
Animation speed randomness ratio.
Color color = Color( 1, 1, 1, 1 )
Each particle's initial color. If texture is defined, it will be multiplied by this color.
Gradient color_initial_ramp
Each particle's initial color will vary along this GradientTexture (multiplied with color).
Gradient color_ramp
Each particle's color will vary along this Gradient (multiplied with color).
float damping = 0.0
The rate at which particles lose velocity.
Curve damping_curve
Damping will vary along this Curve.
float damping_random = 0.0
Damping randomness ratio.
Vector2 direction = Vector2( 1, 0 )
Unit vector specifying the particles' emission direction.
DrawOrder draw_order = 0
Particle draw order. Uses DrawOrder values.
PoolColorArray emission_colors
void set_emission_colors ( PoolColorArray value )
PoolColorArray get_emission_colors ( )
Sets the Colors to modulate particles by when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
PoolVector2Array emission_normals
void set_emission_normals ( PoolVector2Array value )
PoolVector2Array get_emission_normals ( )
Sets the direction the particles will be emitted in when using EMISSION_SHAPE_DIRECTED_POINTS.
PoolVector2Array emission_points
void set_emission_points ( PoolVector2Array value )
PoolVector2Array get_emission_points ( )
Sets the initial positions to spawn particles when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
Vector2 emission_rect_extents
The rectangle's extents if emission_shape is set to EMISSION_SHAPE_RECTANGLE.
EmissionShape emission_shape = 0
void set_emission_shape ( EmissionShape value )
EmissionShape get_emission_shape ( )
Particles will be emitted inside this region. See EmissionShape for possible values.
float emission_sphere_radius
The sphere's radius if emission_shape is set to EMISSION_SHAPE_SPHERE.
bool emitting = true
If true
, particles are being emitted.
float explosiveness = 0.0
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 = 0
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 flag_align_y = false
Align Y axis of particle with the direction of its velocity.
bool fract_delta = true
If true
, results in fractional delta calculation which has a smoother particles display effect.
Vector2 gravity = Vector2( 0, 98 )
Gravity applied to every particle.
float hue_variation = 0.0
Initial hue variation applied to each particle.
Curve hue_variation_curve
Each particle's hue will vary along this Curve.
float hue_variation_random = 0.0
Hue variation randomness ratio.
float initial_velocity = 0.0
Initial velocity magnitude for each particle. Direction comes from spread and the node's orientation.
float initial_velocity_random = 0.0
Initial velocity randomness ratio.
float lifetime = 1.0
The amount of time each particle will exist (in seconds).
float lifetime_randomness = 0.0
Particle lifetime randomness ratio.
float linear_accel = 0.0
Linear acceleration applied to each particle in the direction of motion.
Curve linear_accel_curve
Each particle's linear acceleration will vary along this Curve.
float linear_accel_random = 0.0
Linear acceleration randomness ratio.
bool local_coords = true
If true
, particles use the parent node's coordinate space. If false
, they use global coordinates.
Texture normalmap
Normal map to be used for the texture property.
Note: Redot 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.
bool one_shot = false
If true
, only one emission cycle occurs. If set true
during a cycle, emission will stop at the cycle's end.
float orbit_velocity = 0.0
Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
Curve orbit_velocity_curve
Each particle's orbital velocity will vary along this Curve.
float orbit_velocity_random = 0.0
Orbital velocity randomness ratio.
float preprocess = 0.0
Particle system starts as if it had already run for this many seconds.
float radial_accel = 0.0
Radial acceleration applied to each particle. Makes particle accelerate away from origin.
Curve radial_accel_curve
Each particle's radial acceleration will vary along this Curve.
float radial_accel_random = 0.0
Radial acceleration randomness ratio.
float randomness = 0.0
Emission lifetime randomness ratio.
float scale_amount = 1.0
Initial scale applied to each particle. This can be set to a negative value to flip the particle on both axes.
Curve scale_amount_curve
Each particle's scale will vary along this Curve.
float scale_amount_random = 0.0
Scale randomness ratio.
float speed_scale = 1.0
Particle system's running speed scaling ratio. A value of 0
can be used to pause the particles.
float spread = 45.0
Each particle's initial direction range from +spread
to -spread
degrees.
float tangential_accel = 0.0
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
Each particle's tangential acceleration will vary along this Curve.
float tangential_accel_random = 0.0
Tangential acceleration randomness ratio.
Texture 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.
float get_param ( Parameter param ) const
Returns the base value of the parameter specified by Parameter.
Curve get_param_curve ( Parameter param ) const
Returns the Curve of the parameter specified by Parameter.
float get_param_randomness ( Parameter param ) const
Returns the randomness factor of the parameter specified by Parameter.
bool get_particle_flag ( Flags flag ) const
Returns the enabled state of the given flag (see Flags for options).
void restart ( )
Restarts the particle emitter.
void set_param ( Parameter param, float value )
Sets the base value of the parameter specified by Parameter.
void set_param_curve ( Parameter param, Curve curve )
Sets the Curve of the parameter specified by Parameter.
void set_param_randomness ( Parameter param, float randomness )
Sets the randomness factor of the parameter specified by Parameter.
void set_particle_flag ( Flags flag, bool enable )
Enables or disables the given flag (see Flags for options).