2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-02-14 21:18:53 +08:00
<class name= "GPUParticles2D" inherits= "Node2D" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-13 04:42:36 +08:00
<brief_description >
2017-10-04 03:30:32 +08:00
2D particle emitter.
2017-09-13 04:42:36 +08:00
</brief_description>
<description >
2020-03-31 00:22:57 +08:00
2D particle node used to create a variety of particle systems and effects. [GPUParticles2D] features an emitter that generates some number of particles at a given rate.
2017-10-04 03:30:32 +08:00
Use the [code]process_material[/code] property to add a [ParticlesMaterial] to configure particle appearance and behavior. Alternatively, you can add a [ShaderMaterial] which will be applied to all particles.
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
2021-11-15 17:43:07 +08:00
<link title= "Particle systems (2D)" > $DOCS_URL/tutorials/2d/particle_systems_2d.html</link>
2020-10-01 16:34:47 +08:00
<link title= "2D Dodge The Creeps Demo" > https://godotengine.org/asset-library/asset/515</link>
2017-09-13 04:42:36 +08:00
</tutorials>
<methods >
<method name= "capture_rect" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "Rect2" />
2017-09-13 04:42:36 +08:00
<description >
2019-01-17 19:06:38 +08:00
Returns a rectangle containing the positions of all existing particles.
2017-09-13 04:42:36 +08:00
</description>
</method>
2022-01-25 04:28:59 +08:00
<method name= "emit_particle" >
<return type= "void" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "xform" type= "Transform2D" />
<param index= "1" name= "velocity" type= "Vector2" />
<param index= "2" name= "color" type= "Color" />
<param index= "3" name= "custom" type= "Color" />
<param index= "4" name= "flags" type= "int" />
2022-01-25 04:28:59 +08:00
<description >
Emits a single particle. Whether [code]xform[/code], [code]velocity[/code], [code]color[/code] and [code]custom[/code] are applied depends on the value of [code]flags[/code]. See [enum EmitFlags].
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "restart" >
2021-07-30 21:28:05 +08:00
<return type= "void" />
2017-09-13 04:42:36 +08:00
<description >
2019-01-17 19:06:38 +08:00
Restarts all the existing particles.
2017-09-13 04:42:36 +08:00
</description>
</method>
</methods>
<members >
2019-06-29 18:38:01 +08:00
<member name= "amount" type= "int" setter= "set_amount" getter= "get_amount" default= "8" >
2017-10-15 22:47:48 +08:00
Number of particles emitted in one emission cycle.
2017-09-13 04:42:36 +08:00
</member>
2021-05-20 22:25:06 +08:00
<member name= "collision_base_size" type= "float" setter= "set_collision_base_size" getter= "get_collision_base_size" default= "1.0" >
</member>
<member name= "draw_order" type= "int" setter= "set_draw_order" getter= "get_draw_order" enum= "GPUParticles2D.DrawOrder" default= "1" >
2019-12-07 06:09:20 +08:00
Particle draw order. Uses [enum DrawOrder] values.
2017-09-13 04:42:36 +08:00
</member>
2020-09-04 16:43:11 +08:00
<member name= "emitting" type= "bool" setter= "set_emitting" getter= "is_emitting" default= "true" >
2019-06-29 21:24:23 +08:00
If [code]true[/code], particles are being emitted.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "explosiveness" type= "float" setter= "set_explosiveness_ratio" getter= "get_explosiveness_ratio" default= "0.0" >
2019-06-29 21:24:23 +08:00
How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins.
2017-09-13 04:42:36 +08:00
</member>
2021-05-20 22:25:06 +08:00
<member name= "fixed_fps" type= "int" setter= "set_fixed_fps" getter= "get_fixed_fps" default= "30" >
2019-06-14 08:13:37 +08:00
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.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "fract_delta" type= "bool" setter= "set_fractional_delta" getter= "get_fractional_delta" default= "true" >
2019-06-29 21:24:23 +08:00
If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect.
2017-09-13 04:42:36 +08:00
</member>
2022-03-02 02:59:49 +08:00
<member name= "interpolate" type= "bool" setter= "set_interpolate" getter= "get_interpolate" default= "true" >
Enables particle interpolation, which makes the particle movement smoother when their [member fixed_fps] is lower than the screen refresh rate.
</member>
2019-06-29 18:38:01 +08:00
<member name= "lifetime" type= "float" setter= "set_lifetime" getter= "get_lifetime" default= "1.0" >
2019-06-29 21:24:23 +08:00
Amount of time each particle will exist.
2017-09-13 04:42:36 +08:00
</member>
2022-06-09 23:38:07 +08:00
<member name= "local_coords" type= "bool" setter= "set_use_local_coordinates" getter= "get_use_local_coordinates" default= "false" >
If [code]true[/code], particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the [GPUParticles2D] node (and its parents) when it is moved or rotated. If [code]false[/code], particles use global coordinates; they will not move or rotate along the [GPUParticles2D] node (and its parents) when it is moved or rotated.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "one_shot" type= "bool" setter= "set_one_shot" getter= "get_one_shot" default= "false" >
2019-06-29 21:24:23 +08:00
If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "preprocess" type= "float" setter= "set_pre_process_time" getter= "get_pre_process_time" default= "0.0" >
2017-10-15 22:47:48 +08:00
Particle system starts as if it had already run for this many seconds.
2017-09-13 04:42:36 +08:00
</member>
2019-07-16 02:42:47 +08:00
<member name= "process_material" type= "Material" setter= "set_process_material" getter= "get_process_material" >
2017-10-04 03:30:32 +08:00
[Material] for processing particles. Can be a [ParticlesMaterial] or a [ShaderMaterial].
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "randomness" type= "float" setter= "set_randomness_ratio" getter= "get_randomness_ratio" default= "0.0" >
2019-06-29 21:24:23 +08:00
Emission lifetime randomness ratio.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "speed_scale" type= "float" setter= "set_speed_scale" getter= "get_speed_scale" default= "1.0" >
2019-06-29 21:24:23 +08:00
Particle system's running speed scaling ratio. A value of [code]0[/code] can be used to pause the particles.
2017-09-13 04:42:36 +08:00
</member>
2022-01-25 04:28:59 +08:00
<member name= "sub_emitter" type= "NodePath" setter= "set_sub_emitter" getter= "get_sub_emitter" default= "NodePath("")" >
The [NodePath] to the [GPUParticles2D] used for sub-emissions.
</member>
2020-02-12 16:59:06 +08:00
<member name= "texture" type= "Texture2D" setter= "set_texture" getter= "get_texture" >
2019-06-22 07:04:47 +08:00
Particle texture. If [code]null[/code], particles will be squares.
2017-09-13 04:42:36 +08:00
</member>
2021-05-20 22:25:06 +08:00
<member name= "trail_enabled" type= "bool" setter= "set_trail_enabled" getter= "is_trail_enabled" default= "false" >
</member>
<member name= "trail_length_secs" type= "float" setter= "set_trail_length" getter= "get_trail_length" default= "0.3" >
</member>
<member name= "trail_section_subdivisions" type= "int" setter= "set_trail_section_subdivisions" getter= "get_trail_section_subdivisions" default= "4" >
</member>
<member name= "trail_sections" type= "int" setter= "set_trail_sections" getter= "get_trail_sections" default= "8" >
</member>
2019-09-25 01:45:03 +08:00
<member name= "visibility_rect" type= "Rect2" setter= "set_visibility_rect" getter= "get_visibility_rect" default= "Rect2(-100, -100, 200, 200)" >
2021-01-16 23:13:33 +08:00
The [Rect2] that determines the node's region which needs to be visible on screen for the particle system to be active.
Grow the rect if particles suddenly appear/disappear when the node enters/exits the screen. The [Rect2] can be grown via code or with the [b]Particles → Generate Visibility Rect[/b] editor tool.
2017-09-13 04:42:36 +08:00
</member>
</members>
<constants >
2017-11-25 06:16:30 +08:00
<constant name= "DRAW_ORDER_INDEX" value= "0" enum= "DrawOrder" >
2017-10-04 03:30:32 +08:00
Particles are drawn in the order emitted.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "DRAW_ORDER_LIFETIME" value= "1" enum= "DrawOrder" >
2017-10-04 03:30:32 +08:00
Particles are drawn in order of remaining lifetime.
2017-09-13 04:42:36 +08:00
</constant>
2021-05-20 22:25:06 +08:00
<constant name= "DRAW_ORDER_REVERSE_LIFETIME" value= "2" enum= "DrawOrder" >
</constant>
2022-01-25 04:28:59 +08:00
<constant name= "EMIT_FLAG_POSITION" value= "1" enum= "EmitFlags" >
Particle starts at the specified position.
</constant>
<constant name= "EMIT_FLAG_ROTATION_SCALE" value= "2" enum= "EmitFlags" >
Particle starts with specified rotation and scale.
</constant>
<constant name= "EMIT_FLAG_VELOCITY" value= "4" enum= "EmitFlags" >
Particle starts with the specified velocity vector, which defines the emission direction and speed.
</constant>
<constant name= "EMIT_FLAG_COLOR" value= "8" enum= "EmitFlags" >
Particle starts with specified color.
</constant>
<constant name= "EMIT_FLAG_CUSTOM" value= "16" enum= "EmitFlags" >
2022-02-10 19:00:11 +08:00
Particle starts with specified [code]CUSTOM[/code] data.
2022-01-25 04:28:59 +08:00
</constant>
2017-09-13 04:42:36 +08:00
</constants>
</class>