En esta página

ParticleAffector QML Type

Aplica alteraciones a los atributos de las partículas lógicas en cualquier momento de su vida. Más...

Import Statement: import QtQuick.Particles
Inherited By:

Affector, Age, Attractor, Friction, Gravity, GroupGoal, SpriteGoal, Turbulence, and Wander

Propiedades

Señales

Descripción detallada

El ParticleAffector base no altera ningún atributo, pero puede utilizarse para emitir una señal cuando una partícula cumple ciertas condiciones.

Si un afector tiene un tamaño definido, entonces sólo afectará a las partículas dentro de su tamaño y posición en la pantalla.

Los afectores tienen características de funcionamiento diferentes a las de los demás elementos del sistema de partículas. En particular, tienen algunas simplificaciones para intentar mantener una simulación en tiempo real o más rápida. Cuando se ejecuta un sistema con Afectores, los tiempos de fotogramas irregulares que crecen demasiado ( > un segundo por fotograma) harán que los Afectores intenten recortar distancias con una simulación más rápida pero menos precisa. Si el sistema tiene múltiples Afectores, el orden en el que se aplican no está garantizado, y al simular desplazamientos temporales más grandes simularán cada uno el desplazamiento completo, lo que puede llevar a resultados diferentes en comparación con desplazamientos temporales más pequeños.

Una simulación precisa para un gran número de partículas (cientos) con múltiples afectadores puede ser posible en algún hardware, pero en hardware menos capaz debe esperar pequeñas irregularidades en la simulación ya que simula con peor granularidad.

Documentación de propiedades

enabled : bool

Si enabled se establece en false, este afector no afectará a ninguna partícula.

Normalmente se utiliza para activar o desactivar condicionalmente un afector.

El valor por defecto es true.

groups : list<string>

Qué grupos lógicos de partículas se verán afectados.

Si está vacío, afectará a todas las partículas.

once : bool

Si se establece una vez a verdadero, este afector sólo afectará a cada partícula una vez en su vida. Si el afector simula normalmente un efecto continuo en el tiempo, entonces simulará el efecto de un segundo de tiempo en el instante en que afecte a la partícula.

El valor por defecto es false.

shape : Shape

Si se ha definido un tamaño, la propiedad shape puede utilizarse para afectar a un área no rectangular.

system : ParticleSystem

Es el sistema que se verá afectado por el elemento. Si ParticleAffector es hijo directo de ParticleSystem, se asociará automáticamente a éste.

whenCollidingWith : list<string>

Si aquí se especifica algún grupo lógico de partículas, entonces el afector de partículas sólo se activará si la partícula que se está examinando se cruza con una partícula de uno de estos grupos.

Esto es diferente de la propiedad groups. La propiedad groups selecciona qué partículas pueden ser examinadas, y si cumplen otros criterios (incluyendo estar dentro de los límites de ParticleAffector, modificado por la forma) entonces serán examinadas de nuevo para ver si se cruzan con una partícula de uno de los grupos de partículas en whenCollidingWith.

Por defecto, no se especifica ningún grupo.

Documentación de señales

affected(real x, real y)

Esta señal se emite cuando se selecciona una partícula para ser afectada. No se emitirá si una partícula es considerada por ParticleAffector pero no es alterada de ninguna manera.

En el caso especial de que un ParticleAffector no tenga ningún efecto posible (por ejemplo, ParticleAffector {}), esta señal se emitirá para todas las partículas consideradas si se conecta a él. Esto te permite ejecutar código arbitrario en respuesta a las partículas (utiliza el manejador de señal ParticleAffector::onAffectParticles si quieres ejecutar código que afecte a las propias partículas). Como esto ejecuta código JavaScript por partícula, no se recomienda utilizar esta señal con un sistema de partículas de gran volumen.

(x, y) es la posición actual de la partícula.

Nota: El manejador correspondiente es onAffected.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.