Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

CPUParticles2D

继承: Node2D < CanvasItem < Node < Object

基于 CPU 的 2D 粒子发射器。

描述

基于 CPU 的 2D 粒子节点,可用于创建各种粒子系统、粒子效果。

另见 GPUParticles2D,利用硬件加速提供了相同的功能,但可能无法在较旧的设备上运行。

教程

属性

int

amount

8

Curve

angle_curve

float

angle_max

0.0

float

angle_min

0.0

Curve

angular_velocity_curve

float

angular_velocity_max

0.0

float

angular_velocity_min

0.0

Curve

anim_offset_curve

float

anim_offset_max

0.0

float

anim_offset_min

0.0

Curve

anim_speed_curve

float

anim_speed_max

0.0

float

anim_speed_min

0.0

Color

color

Color(1, 1, 1, 1)

Gradient

color_initial_ramp

Gradient

color_ramp

Curve

damping_curve

float

damping_max

0.0

float

damping_min

0.0

Vector2

direction

Vector2(1, 0)

DrawOrder

draw_order

0

PackedColorArray

emission_colors

PackedVector2Array

emission_normals

PackedVector2Array

emission_points

Vector2

emission_rect_extents

EmissionShape

emission_shape

0

float

emission_sphere_radius

bool

emitting

true

float

explosiveness

0.0

int

fixed_fps

0

bool

fract_delta

true

Vector2

gravity

Vector2(0, 980)

Curve

hue_variation_curve

float

hue_variation_max

0.0

float

hue_variation_min

0.0

float

initial_velocity_max

0.0

float

initial_velocity_min

0.0

float

lifetime

1.0

float

lifetime_randomness

0.0

Curve

linear_accel_curve

float

linear_accel_max

0.0

float

linear_accel_min

0.0

bool

local_coords

false

bool

one_shot

false

Curve

orbit_velocity_curve

float

orbit_velocity_max

0.0

float

orbit_velocity_min

0.0

bool

particle_flag_align_y

false

float

preprocess

0.0

Curve

radial_accel_curve

float

radial_accel_max

0.0

float

radial_accel_min

0.0

float

randomness

0.0

Curve

scale_amount_curve

float

scale_amount_max

1.0

float

scale_amount_min

1.0

Curve

scale_curve_x

Curve

scale_curve_y

float

speed_scale

1.0

bool

split_scale

false

float

spread

45.0

Curve

tangential_accel_curve

float

tangential_accel_max

0.0

float

tangential_accel_min

0.0

Texture2D

texture

方法

void

convert_from_particles(particles: Node)

Curve

get_param_curve(param: Parameter) const

float

get_param_max(param: Parameter) const

float

get_param_min(param: Parameter) const

bool

get_particle_flag(particle_flag: ParticleFlags) const

void

restart()

void

set_param_curve(param: Parameter, curve: Curve)

void

set_param_max(param: Parameter, value: float)

void

set_param_min(param: Parameter, value: float)

void

set_particle_flag(particle_flag: ParticleFlags, enable: bool)


信号

finished() 🔗

当所有活动粒子完成处理时发出。当 one_shot 被禁用时,粒子将连续处理,因此它永远不会触发。


枚举

enum DrawOrder: 🔗

DrawOrder DRAW_ORDER_INDEX = 0

粒子按发射顺序绘制。

DrawOrder DRAW_ORDER_LIFETIME = 1

粒子按照剩余寿命的顺序绘制。换句话说,寿命最长的粒子被绘制在前面。


enum Parameter: 🔗

Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0

set_param_minset_param_maxset_param_curve 一起使用,设置初始速度属性。

Parameter PARAM_ANGULAR_VELOCITY = 1

set_param_minset_param_maxset_param_curve 一起使用,设置角速度属性。

Parameter PARAM_ORBIT_VELOCITY = 2

set_param_minset_param_maxset_param_curve 一起使用,设置轨道速度属性。

Parameter PARAM_LINEAR_ACCEL = 3

set_param_minset_param_maxset_param_curve 一起使用,设置线性加速度属性。

Parameter PARAM_RADIAL_ACCEL = 4

set_param_minset_param_maxset_param_curve 一起使用,设置径向加速度属性。

Parameter PARAM_TANGENTIAL_ACCEL = 5

set_param_minset_param_maxset_param_curve 一起使用,设置切向加速度属性。

Parameter PARAM_DAMPING = 6

set_param_minset_param_maxset_param_curve 一起使用,设置阻尼属性。

Parameter PARAM_ANGLE = 7

set_param_minset_param_maxset_param_curve 一起使用,设置角度属性。

Parameter PARAM_SCALE = 8

set_param_minset_param_maxset_param_curve 一起使用,设置缩放属性。

Parameter PARAM_HUE_VARIATION = 9

set_param_minset_param_maxset_param_curve 一起使用,设置色相变化属性。

Parameter PARAM_ANIM_SPEED = 10

set_param_minset_param_maxset_param_curve 一起使用,设置动画速度属性。

Parameter PARAM_ANIM_OFFSET = 11

set_param_minset_param_maxset_param_curve 一起使用,设置动画偏移属性。

Parameter PARAM_MAX = 12

代表 Parameter 枚举的大小。


enum ParticleFlags: 🔗

ParticleFlags PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0

set_particle_flag 一起使用,设置 particle_flag_align_y

ParticleFlags PARTICLE_FLAG_ROTATE_Y = 1

为了与 3D 粒子节点保持一致而存在,在 2D 中不被使用。

ParticleFlags PARTICLE_FLAG_DISABLE_Z = 2

为了与 3D 粒子节点保持一致而存在,在 2D 中不被使用。

ParticleFlags PARTICLE_FLAG_MAX = 3

代表 ParticleFlags 枚举的大小。


enum EmissionShape: 🔗

EmissionShape EMISSION_SHAPE_POINT = 0

所有粒子将从单个点发射。

EmissionShape EMISSION_SHAPE_SPHERE = 1

粒子将在扁平化到二维的球体内发射。

EmissionShape EMISSION_SHAPE_SPHERE_SURFACE = 2

粒子将在扁平化到二维的球面上发射。

EmissionShape EMISSION_SHAPE_RECTANGLE = 3

粒子将在矩形区域内发射。

EmissionShape EMISSION_SHAPE_POINTS = 4

粒子将在 emission_points 中随机选择的位置发射。粒子颜色将通过 emission_colors 进行调制。

EmissionShape EMISSION_SHAPE_DIRECTED_POINTS = 5

粒子将在 emission_points 中随机选择的位置发射。粒子的速度和旋转将基于 emission_normals 进行设置。粒子颜色将通过 emission_colors 进行调制。

EmissionShape EMISSION_SHAPE_MAX = 6

代表 EmissionShape 枚举的大小。


属性说明

int amount = 8 🔗

  • void set_amount(value: int)

  • int get_amount()

单个发射周期内发射的粒子数。


Curve angle_curve 🔗

每个粒子的旋转将沿着这条 Curve 进行动画处理。


float angle_max = 0.0 🔗

应用于每个粒子的最大初始旋转,单位:度。


float angle_min = 0.0 🔗

angle_max 的对应最小值。


Curve angular_velocity_curve 🔗

每个粒子的角速度将沿着这条 Curve 变化。


float angular_velocity_max = 0.0 🔗

应用于每个粒子的最大初始角速度(旋转速度),单位:每秒。


float angular_velocity_min = 0.0 🔗

angular_velocity_max 的对应最小值。


Curve anim_offset_curve 🔗

每个粒子的动画偏移将沿着这条 Curve 变化。


float anim_offset_max = 0.0 🔗

与纹理中的帧索引相对应的最大动画偏移量。0 是第一帧,1 是最后一帧。参见 CanvasItemMaterial.particles_animation


float anim_offset_m