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
Eredita: Node2D < CanvasItem < Node < Object
Un emettitore di particelle 2D basato su CPU.
Descrizione
Nodo di particelle 2D basato su CPU utilizzato per creare una varietà di sistemi ed effetti di particelle.
Vedi anche GPUParticles2D, che fornisce la stessa funzionalità con accelerazione hardware, ma potrebbe non funzionare su dispositivi più vecchi.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
physics_interpolation_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Metodi
void |
convert_from_particles(particles: Node) |
get_param_curve(param: Parameter) const |
|
get_param_max(param: Parameter) const |
|
get_param_min(param: Parameter) const |
|
get_particle_flag(particle_flag: ParticleFlags) const |
|
void |
request_particles_process(process_time: float, process_time_residual: float = 0.0) |
void |
|
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) |
Segnali
finished() 🔗
Emesso quando tutte le particelle attive hanno terminato l'elaborazione. Quando one_shot è disabilitato, le particelle saranno elaborate in modo continuo, quindi non verrà mai emesso.
Enumerazioni
enum DrawOrder: 🔗
DrawOrder DRAW_ORDER_INDEX = 0
Le particelle sono disegnate nell'ordine in cui sono emesse.
DrawOrder DRAW_ORDER_LIFETIME = 1
Le particelle sono disegnate nell'ordine di tempo di vita residuo. In altre parole, la particella con il tempo di vita più alto è disegnata davanti.
enum Parameter: 🔗
Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà della velocità iniziale.
Parameter PARAM_ANGULAR_VELOCITY = 1
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà della velocità angolare.
Parameter PARAM_ORBIT_VELOCITY = 2
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà della velocità orbitale.
Parameter PARAM_LINEAR_ACCEL = 3
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà dell'accelerazione lineare.
Parameter PARAM_RADIAL_ACCEL = 4
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà dell'accelerazione radiale.
Parameter PARAM_TANGENTIAL_ACCEL = 5
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà dell'accelerazione tangenziale.
Parameter PARAM_DAMPING = 6
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà dello smorzamento.
Parameter PARAM_ANGLE = 7
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà dell'angolo.
Parameter PARAM_SCALE = 8
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà della scala.
Parameter PARAM_HUE_VARIATION = 9
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà della variazione di tonalità.
Parameter PARAM_ANIM_SPEED = 10
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà della velocità di animazione.
Parameter PARAM_ANIM_OFFSET = 11
Da utilizzare con set_param_min(), set_param_max(), e set_param_curve() per impostare le proprietà dell'offset di animazione.
Parameter PARAM_MAX = 12
Rappresenta la dimensione dell'enumerazione Parameter.
enum ParticleFlags: 🔗
ParticleFlags PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0
Da utilizzare con set_particle_flag() per impostare particle_flag_align_y.
ParticleFlags PARTICLE_FLAG_ROTATE_Y = 1
Presente per coerenza con i nodi delle particelle 3D, mai utilizzato in 2D.
ParticleFlags PARTICLE_FLAG_DISABLE_Z = 2
Presente per coerenza con i nodi delle particelle 3D, mai utilizzato in 2D.
ParticleFlags PARTICLE_FLAG_MAX = 3
Rappresenta la dimensione dell'enumerazione ParticleFlags.
enum EmissionShape: 🔗
EmissionShape EMISSION_SHAPE_POINT = 0
Tutte le particelle saranno emesse da un unico punto.
EmissionShape EMISSION_SHAPE_SPHERE = 1
Le particelle saranno emesse nel volume di una sfera appiattita a due dimensioni.
EmissionShape EMISSION_SHAPE_SPHERE_SURFACE = 2
Le particelle saranno emesse sulla superfice di una sfera appiattita a due dimensioni.
EmissionShape EMISSION_SHAPE_RECTANGLE = 3
Le particelle saranno emesse nell'area di un rettangolo.
EmissionShape EMISSION_SHAPE_POINTS = 4
Le particelle saranno emesse in una posizione scelta a caso tra i punti emission_points. Il colore delle particelle sarà modulato per emission_colors.
EmissionShape EMISSION_SHAPE_DIRECTED_POINTS = 5
Le particelle saranno emesse in una posizione scelta a caso tra i punti emission_points. La velocità e la rotazione delle particelle saranno impostate in base a emission_normals. Il colore delle particelle sarà modulato per emission_colors.
EmissionShape EMISSION_SHAPE_RING = 6
Particles will be emitted in the area of a ring parameterized by its outer and inner radius.
EmissionShape EMISSION_SHAPE_MAX = 7
Rappresenta la dimensione dell'enumerazione EmissionShape.
Descrizioni delle proprietà
Numero di particelle emesse in un singolo ciclo di emissione.
La rotazione di ogni particella sarà animata lungo questa Curve. Dovrebbe essere una Curve unitaria.
Rotazione iniziale massima applicata a ciascuna particella, in gradi.
Equivalente minimo di angle_max.
Curve angular_velocity_curve 🔗
La velocità angolare di ciascuna particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float angular_velocity_max = 0.0 🔗
Velocità angolare iniziale massima (velocità di rotazione) applicata a ciascuna particella in gradi al secondo.
float angular_velocity_min = 0.0 🔗
Equivalente minimo di angular_velocity_max.
L'offset dell'animazione di ogni particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
Offset massimo dell'animazione che corrisponde all'indice del fotogramma nella texture. 0 è il primo fotogramma, 1 è l'ultimo. Vedi CanvasItemMaterial.particles_animation.
Equivalente minimo di anim_offset_max.
La velocità dell'animazione di ogni particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
Velocità massima d'animazione delle particelle. Una velocità d'animazione di 1 significa che le particelle faranno un ciclo di offset completo da 0 a 1 durante la loro durata, 2 significa 2 cicli ecc.
Con una velocità di animazione maggiore di 1, ricorda di abilitare la proprietà CanvasItemMaterial.particles_anim_loop se vuoi che l'animazione si ripeta.
Equivalente minimo di anim_speed_max.
Color color = Color(1, 1, 1, 1) 🔗
Colore iniziale di ciascuna particella. Se texture è definito, sarà moltiplicato per questo colore.
Il colore di ciascuna particella varierà lungo questo Gradient (moltiplicato per color).
Il colore di ciascuna particella varierà lungo questo Gradient nel corso della sua durata (moltiplicato per color).
Lo smorzamento varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
La frequenza massima a cui le particelle perdono velocità. Ad esempio, il valore di 100 significa che la particella passerà da una velocità di 100 a una velocità di 0 in 1 secondo.
Equivalente minimo di damping_max.
Vector2 direction = Vector2(1, 0) 🔗
Vettore unitario che specifica la direzione di emissione delle particelle.
Ordine di disegno delle particelle.
PackedColorArray emission_colors 🔗
void set_emission_colors(value: PackedColorArray)
PackedColorArray get_emission_colors()
Imposta i Color con cui modulare le particelle quando si utilizza EMISSION_SHAPE_POINTS o EMISSION_SHAPE_DIRECTED_POINTS.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedColorArray for more details.
PackedVector2Array emission_normals 🔗
void set_emission_normals(value: PackedVector2Array)
PackedVector2Array get_emission_normals()
Imposta la direzione in cui saranno emesse le particelle quando si utilizza EMISSION_SHAPE_DIRECTED_POINTS.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
PackedVector2Array emission_points 🔗
void set_emission_points(value: PackedVector2Array)
PackedVector2Array get_emission_points()
Imposta le posizioni iniziali per generare le particelle quando si utilizza EMISSION_SHAPE_POINTS o EMISSION_SHAPE_DIRECTED_POINTS.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
Vector2 emission_rect_extents 🔗
Le estensioni del rettangolo se emission_shape è impostato su EMISSION_SHAPE_RECTANGLE.
float emission_ring_inner_radius 🔗
The ring's inner radius if emission_shape is set to EMISSION_SHAPE_RING.
The ring's outer radius if emission_shape is set to EMISSION_SHAPE_RING.
EmissionShape emission_shape = 0 🔗
void set_emission_shape(value: EmissionShape)
EmissionShape get_emission_shape()
Le particelle saranno emesse dentro questa regione.
float emission_sphere_radius 🔗
Il raggio della sfera se emission_shape è impostato su EMISSION_SHAPE_SPHERE.
Se true, le particelle sono emesse. emitting può essere utilizzato per avviare e interrompere l'emissione di particelle. Tuttavia, se one_shot è true, l'impostazione di emitting su true non riavvierà il ciclo di emissione finché tutte le particelle attive non avranno completato l'elaborazione. Puoi utilizzare il segnale finished per essere avvisato una volta che tutte le particelle attive avranno completato l'elaborazione.
Quanto rapidamente sono emesse le particelle in un ciclo di emissione. Se maggiore di 0, ci sarà un distacco nelle emissioni prima che inizi il ciclo successivo.
La frequenza dei fotogrammi del sistema di particelle è fissato a un valore. Ad esempio, cambiando il valore a 2, le particelle saranno renderizzate a 2 fotogrammi al secondo. Nota che questo non rallenta la simulazione del sistema di particelle stesso.
Se true, utilizza un calcolo di delta frazionario che consente una visualizzazione più fluida delle particelle.
Vector2 gravity = Vector2(0, 980) 🔗
Gravità applicata a ogni particella.
La tonalità di ogni particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float hue_variation_max = 0.0 🔗
Massima variazione iniziale della tonalità applicata a ogni particella. Ciò sposterà la tonalità del colore della particella.
float hue_variation_min = 0.0 🔗
Equivalente minimo di hue_variation_max.
float initial_velocity_max = 0.0 🔗
Massima ampiezza della velocità iniziale per ogni particella. La direzione deriva da direction e spread.
float initial_velocity_min = 0.0 🔗
Equivalente minimo di initial_velocity_max.
Quantità di tempo in cui ogni particella esisterà.
float lifetime_randomness = 0.0 🔗
Rapporto di casualità della durata di vita delle particelle.
L'accelerazione lineare di ogni particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float linear_accel_max = 0.0 🔗
Accelerazione lineare massima applicata a ciascuna particella nella direzione del movimento.
float linear_accel_min = 0.0 🔗
Equivalente minimo di linear_accel_max.
Se true, le particelle usano lo spazio di coordinate del nodo genitore (noto come coordinate locali). Ciò farà sì che le particelle si muovano e ruotino lungo il nodo CPUParticles2D (e i suoi genitori) quando viene spostato o ruotato. Se false, le particelle usano coordinate globali; non si muoveranno o ruoteranno lungo il nodo CPUParticles2D (e i suoi genitori) quando viene spostato o ruotato.
Se true, un solo ciclo di emissione sarà prodotto. Se impostato su true durante un ciclo, l'emissione si interromperà alla fine del ciclo.
La velocità orbitale di ciascuna particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float orbit_velocity_max = 0.0 🔗
Velocità orbitale massima applicata a ciascuna particella. Fa in modo che le particelle girino attorno all'origine. Specificata in numero di rotazioni complete attorno all'origine al secondo.
float orbit_velocity_min = 0.0 🔗
Equivalente minimo di orbit_velocity_max.
bool particle_flag_align_y = false 🔗
void set_particle_flag(particle_flag: ParticleFlags, enable: bool)
bool get_particle_flag(particle_flag: ParticleFlags) const
Allinea l'asse Y della particella con la direzione della sua velocità.
Il sistema di particelle si avvia come se avesse già cominciato questo numero di secondi fa.
L'accelerazione radiale di ogni particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float radial_accel_max = 0.0 🔗
Accelerazione radiale massima applicata a ciascuna particella. Fa accelerare la particella, allontanandola dall'origine o avvicinandola se il valore è negativo.
float radial_accel_min = 0.0 🔗
Equivalente minimo di radial_accel_max.
Rapporto di casualità del tempo di vita dell'emissione.
La scala di ciascuna particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float scale_amount_max = 1.0 🔗
Scala iniziale massima applicata a ciascuna particella.
float scale_amount_min = 1.0 🔗
Equivalente minimo di scale_amount_max.
La scala orizzontale di ciascuna particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
split_scale deve essere abilitato.
La scala verticale di ciascuna particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
split_scale deve essere abilitato.
Imposta il seed casuale utilizzato dal sistema di particelle. Efficace solo se use_fixed_seed è true.
Rapporto della velocità di esecuzione del sistema di particelle. Un valore di 0 può essere utilizzato per mettere in pausa le particelle.
Se true, la curva della scala sarà divisa in componenti x e y. Vedi scale_curve_x e scale_curve_y.
La direzione iniziale di ciascuna particella varia da +spread a -spread (in gradi).
Curve tangential_accel_curve 🔗
L'accelerazione tangenziale di ogni particella varierà lungo questa Curve. Dovrebbe essere una Curve unitaria.
float tangential_accel_max = 0.0 🔗
Accelerazione tangenziale massima applicata a ciascuna particella. L'accelerazione tangenziale è perpendicolare alla velocità della particella, dandogli un movimento vorticoso.
float tangential_accel_min = 0.0 🔗
Equivalente minimo di tangential_accel_max.
Texture delle particelle. Se null, le particelle saranno quadrati.
Se true, le particelle utilizzeranno lo stesso seed per ogni simulazione, utilizzando il seed definito in seed. Ciò è utile per le situazioni in cui il risultato visivo deve essere coerente tra i replay, ad esempio quando si utilizza la modalità Movie Maker.
Descrizioni dei metodi
void convert_from_particles(particles: Node) 🔗
Imposta le proprietà di questo nodo in modo che corrispondano a un dato nodo GPUParticles2D con un ParticleProcessMaterial assegnato.
Curve get_param_curve(param: Parameter) const 🔗
Restituisce la risorsa Curve del parametro specificato da Parameter.
float get_param_max(param: Parameter) const 🔗
Restituisce il valore massimo dell'intervallo per il parametro specificato.
float get_param_min(param: Parameter) const 🔗
Restituisce il valore minimo dell'intervallo per il parametro specificato.
bool get_particle_flag(particle_flag: ParticleFlags) const 🔗
Restituisce lo stato abilitato del flag di particella specificato.
void request_particles_process(process_time: float, process_time_residual: float = 0.0) 🔗
Requests the particles to process for extra process time during a single frame.
process_time defines the time that the particles will process while emitting is on. process_time_residual defines the time that particles will process with emitting turned off for the simulation. When combined with speed_scale set to 0.0, this is useful to be able to seek a particle system timeline.
void restart(keep_seed: bool = false) 🔗
Riavvia l'emettitore di particelle.
Se keep_seed è true, il seed casuale attuale verrà conservato. Utile per la ricerca e la riproduzione.
void set_param_curve(param: Parameter, curve: Curve) 🔗
Imposta la risorsa Curve del parametro specificato da Parameter. Dovrebbe essere una Curve unitaria.
void set_param_max(param: Parameter, value: float) 🔗
Imposta il valore massimo per il parametro specificato.
void set_param_min(param: Parameter, value: float) 🔗
Imposta il valore minimo per il parametro specificato.
void set_particle_flag(particle_flag: ParticleFlags, enable: bool) 🔗
Abilita o disabilita il flag specificato.