Sur cette page

ParticleAffector QML Type

Applique des modifications aux attributs des particules logiques à n'importe quel moment de leur vie. Plus d'informations...

Import Statement: import QtQuick.Particles
Inherited By:

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

Propriétés

Signaux

Description détaillée

Le ParticleAffector de base ne modifie aucun attribut, mais peut être utilisé pour émettre un signal lorsqu'une particule remplit certaines conditions.

Si un affectateur a une taille définie, il n'affectera que les particules dont la taille et la position à l'écran sont conformes à cette taille.

Les affecteurs présentent des caractéristiques de performance différentes de celles des autres éléments du système de particules. En particulier, ils présentent certaines simplifications pour tenter de maintenir une simulation en temps réel ou plus rapide. Lors de l'exécution d'un système avec des affecteurs, des temps d'image irréguliers qui deviennent trop importants ( > une seconde par image) amèneront les affecteurs à essayer de faire des économies en réalisant une simulation plus rapide mais moins précise. Si le système comporte plusieurs affecteurs, l'ordre dans lequel ils sont appliqués n'est pas garanti et, lors de la simulation de décalages temporels plus importants, ils simuleront chacun le décalage entier, ce qui peut donner des résultats différents par rapport à des décalages temporels plus faibles.

Une simulation précise pour un grand nombre de particules (des centaines) avec des affectateurs multiples peut être possible sur certains matériels, mais sur des matériels moins performants, il faut s'attendre à de petites irrégularités dans la simulation qui simule avec une granularité plus faible.

Documentation sur les propriétés

enabled : bool

Si enabled est défini sur false, cet affector n'affectera aucune particule.

Ce paramètre est généralement utilisé pour activer ou désactiver un affectateur de manière conditionnelle.

La valeur par défaut est true.

groups : list<string>

Les groupes de particules logiques qui seront affectés.

S'il est vide, toutes les particules seront affectées.

once : bool

Si la valeur "once" est fixée à "true", cet affector n'affectera chaque particule qu'une seule fois au cours de sa vie. Si l'affect simule normalement un effet continu dans le temps, il simulera l'effet d'une seconde de temps à l'instant où il affecte la particule.

La valeur par défaut est false.

shape : Shape

Si une taille a été définie, la propriété shape peut être utilisée pour affecter une zone non rectangulaire.

system : ParticleSystem

Il s'agit du système qui sera affecté par l'élément. Si le site ParticleAffector est un enfant direct d'un site ParticleSystem, il lui sera automatiquement associé.

whenCollidingWith : list<string>

Si des groupes logiques de particules sont spécifiés ici, l'affectateur de particules ne sera déclenché que si la particule examinée croise une particule appartenant à l'un de ces groupes.

Ceci est différent de la propriété groups. La propriété groups sélectionne les particules susceptibles d'être examinées et, si elles répondent à d'autres critères (notamment si elles se trouvent dans les limites de ParticleAffector, modifiées par la forme), elles seront à nouveau testées pour voir si elles croisent une particule appartenant à l'un des groupes de particules définis dans whenCollidingWith.

Par défaut, aucun groupe n'est spécifié.

Documentation sur les signaux

affected(real x, real y)

Ce signal est émis lorsqu'une particule est sélectionnée pour être affectée. Il n'est pas émis si une particule est prise en compte par ParticleAffector mais n'est en aucun cas modifiée.

Dans le cas particulier où un ParticleAffector n'a pas d'effet possible (par exemple ParticleAffector {}), ce signal sera émis pour toutes les particules prises en compte si vous vous y connectez. Cela vous permet d'exécuter du code arbitraire en réponse aux particules (utilisez le gestionnaire de signal ParticleAffector::onAffectParticles si vous voulez exécuter du code qui affecte les particules elles-mêmes). Comme ce signal exécute du code JavaScript par particule, il n'est pas recommandé de l'utiliser avec un système de particules à haut volume.

(x, y) est la position actuelle de la particule.

Remarque : le gestionnaire correspondant est 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.