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.
Checking the stable version of the documentation...
CPUParticles2D¶
继承: Node2D < CanvasItem < Node < Object
基于 CPU 的 2D 粒子发射器。
描述¶
基于 CPU 的 2D 粒子节点,可用于创建各种粒子系统、粒子效果。
另见 GPUParticles2D,利用硬件加速提供了相同的功能,但可能无法在较旧的设备上运行。
教程¶
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
方法¶
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 ) |
信号¶
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_min、set_param_max、set_param_curve 一起使用,设置初始速度属性。
Parameter PARAM_ANGULAR_VELOCITY = 1
与 set_param_min、set_param_max、set_param_curve 一起使用,设置角速度属性。
Parameter PARAM_ORBIT_VELOCITY = 2
与 set_param_min、set_param_max、set_param_curve 一起使用,设置轨道速度属性。
Parameter PARAM_LINEAR_ACCEL = 3
与 set_param_min、set_param_max、set_param_curve 一起使用,设置线性加速度属性。
Parameter PARAM_RADIAL_ACCEL = 4
与 set_param_min、set_param_max、set_param_curve 一起使用,设置径向加速度属性。
Parameter PARAM_TANGENTIAL_ACCEL = 5
与 set_param_min、set_param_max、set_param_curve 一起使用,设置切向加速度属性。
Parameter PARAM_DAMPING = 6
与 set_param_min、set_param_max、set_param_curve 一起使用,设置阻尼属性。
Parameter PARAM_ANGLE = 7
与 set_param_min、set_param_max、set_param_curve 一起使用,设置角度属性。
Parameter PARAM_SCALE = 8
与 set_param_min、set_param_max、set_param_curve 一起使用,设置缩放属性。
Parameter PARAM_HUE_VARIATION = 9
与 set_param_min、set_param_max、set_param_curve 一起使用,设置色相变化属性。
Parameter PARAM_ANIM_SPEED = 10
与 set_param_min、set_param_max、set_param_curve 一起使用,设置动画速度属性。
Parameter PARAM_ANIM_OFFSET = 11
与 set_param_min、set_param_max、set_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
单个发射周期内发射的粒子数。
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_min = 0.0
anim_offset_max 的对应最小值。
Curve anim_speed_curve
每个粒子的动画速度将沿着这条 Curve 变化。
float anim_speed_max = 0.0
最大粒子动画速度。1
的动画速度是指粒子在生命周期内会做完整的 0
到 1
的偏移循环,2
则表示 2
个循环,如此等等。
当动画速度大于 1
时,如果希望动画重复,请记住启用 CanvasItemMaterial.particles_anim_loop 属性。
float anim_speed_min = 0.0
anim_speed_max 的对应最小值。
Color color = Color(1, 1, 1, 1)
每个粒子的初始颜色。如果定义了 texture,它将乘以该颜色。
Gradient color_initial_ramp
每个粒子的初始颜色将沿着这条 GradientTexture1D(乘以 color)而变化。
Gradient color_ramp
每个粒子的颜色将沿着这条 Gradient 变化(与 color 相乘)。
Curve damping_curve
阻尼将沿着这条 Gradient 变化。
float damping_max = 0.0
粒子失去速度的最大速率。例如 100
的值表示粒子将在 1
秒内,速度从 100
变为 0
。
float damping_min = 0.0
damping_max 的对应最小值。
Vector2 direction = Vector2(1, 0)
指定粒子发射方向的单位向量。
DrawOrder draw_order = 0
粒子绘制顺序。使用 DrawOrder 的值。
PackedColorArray emission_colors
void set_emission_colors ( PackedColorArray value )
PackedColorArray get_emission_colors ( )
设置使用 EMISSION_SHAPE_POINTS 或 EMISSION_SHAPE_DIRECTED_POINTS 时对粒子进行调制的 Color。
PackedVector2Array emission_normals
void set_emission_normals ( PackedVector2Array value )
PackedVector2Array get_emission_normals ( )
设置使用 EMISSION_SHAPE_DIRECTED_POINTS 时粒子发射的方向。
PackedVector2Array emission_points
void set_emission_points ( PackedVector2Array value )
PackedVector2Array get_emission_points ( )
设置使用 EMISSION_SHAPE_POINTS 或 EMISSION_SHAPE_DIRECTED_POINTS 时出生粒子的初始位置。
Vector2 emission_rect_extents
emission_shape 被设置为 EMISSION_SHAPE_RECTANGLE 时,该矩形的范围。
EmissionShape emission_shape = 0
void set_emission_shape ( EmissionShape value )
EmissionShape get_emission_shape ( )
粒子将在此区域内发射。可能的取值见 EmissionShape。
float emission_sphere_radius
emission_shape 被设置为 EMISSION_SHAPE_SPHERE 时,该球体的半径。
bool emitting = true
如果为 true
,则正在发射粒子。emitting 可用于启动和停止粒子发射。但是,如果 one_shot 为 true
,则将 emitting 设置为 true
将不会重新启动该发射循环,直到所有活动粒子完成处理为止。一旦所有活动粒子完成处理,你可以使用 finished 信号来收取通知。
float explosiveness = 0.0
粒子在单个发射周期中的发射有多急。如果大于 0
,则在下一个发射周期开始之前,发射会出现一个间隔。
int fixed_fps = 0
粒子系统的帧速率被固定为一个值。例如,将值更改为 2 会使粒子以每秒 2 帧的速度渲染。请注意,这并不会降低粒子系统本身的模拟速度。
bool fract_delta = true
如果为 为true
,则使用分数增量 delta 计算,将具有更平滑的粒子显示效果。
Vector2 gravity = Vector2(0, 980)
应用于每个粒子的重力。
Curve hue_variation_curve
每个粒子的色相都会沿着这条 Curve 变化。
float hue_variation_max = 0.0
应用于每个粒子的最大初始色相变化。会改变粒子颜色的色相。
float hue_variation_min = 0.0
hue_variation_max 的对应最小值。
float initial_velocity_max = 0.0
每个粒子的最大初始速度大小。方向来自 direction 和 spread。
float initial_velocity_min = 0.0
initial_velocity_max 的对应最小值。
float lifetime = 1.0
每个粒子存在的时间。
float lifetime_randomness = 0.0
粒子寿命随机率。
Curve linear_accel_curve
每个粒子的线性加速度将沿这条 Curve 变化。
float linear_accel_max = 0.0
在运动方向上应用于每个粒子的最大线性加速度。
float linear_accel_min = 0.0
linear_accel_max 的对应最小值。
bool local_coords = false
如果为 true
,粒子使用父节点的坐标空间(称为局部坐标)。这将导致粒子在移动或旋转时,沿着 CPUParticles2D 节点(及其父节点)移动和旋转。如果为 false
,则粒子使用全局坐标;当移动或旋转时,它们不会沿着 CPUParticles2D 节点(及其父节点)移动或旋转。
bool one_shot = false
如果为 true
,则只发生一个发射周期。如果在某个周期内设置为 true
,则发射将在该周期结束时停止。
Curve orbit_velocity_curve
每个粒子的轨道速度将沿着这条 Curve 变化。
float orbit_velocity_max = 0.0
应用于每个粒子的最大轨道速度。使粒子围绕原点旋转。以每秒围绕原点的完整旋转数指定。
float orbit_velocity_min = 0.0
void set_param_min