Sur cette page

ParticleAffector QML Type

Permet de modifier les attributs des particules logiques à tout moment de leur cycle de vie. En savoir plus…

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

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

Si un affecteur a une taille définie, il n'affectera alors que les particules se trouvant dans les limites de cette taille et à sa position à l'écran.

Les affecteurs présentent des caractéristiques de performance différentes de celles des autres éléments du système de particules. Ils intègrent notamment certaines simplifications visant à maintenir une simulation en temps réel, voire plus rapide. Lors de l’exécution d’un système comportant des affecteurs, des intervalles entre les images irréguliers devenant trop longs (supérieurs à une seconde par image) entraîneront une simulation plus rapide mais moins précise de la part des affecteurs. Si le système comporte plusieurs affectateurs, l’ordre dans lequel ils sont appliqués n’est pas garanti ; de plus, lors de la simulation de décalages temporels importants, chacun d’entre eux simulera l’intégralité du décalage, ce qui peut conduire à des résultats différents par rapport à des décalages temporels plus courts.

Une simulation précise pour un grand nombre de particules (des centaines) avec plusieurs affecteurs peut être possible sur certains matériels, mais sur des matériels moins performants, il faut s’attendre à de légères irrégularités dans la simulation, celle-ci étant effectuée avec une granularité moindre.

Documentation des propriétés

enabled : bool

Si la valeur de « enabled » est définie sur « false », cet affecteur n'aura aucun effet sur les particules.

Cette option est généralement utilisée pour activer ou désactiver un affecteur de manière conditionnelle.

La valeur par défaut est « true ».

groups : list<string>

Quels groupes de particules logiques seront concernés ?

Si ce champ est vide, toutes les particules seront concernées.

once : bool

Si l'option « once » est définie sur « true », cet affecteur n'aura d'effet sur chaque particule qu'une seule fois au cours de sa durée de vie. Si l'affecteur simule normalement un effet continu dans le temps, il simulera alors l'effet correspondant à une seconde de temps à l'instant précis 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 modifier une zone non rectangulaire.

system : ParticleSystem

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

whenCollidingWith : list<string>

Si des groupes de particules logiques sont spécifiés ici, l’affecteur de particules ne sera déclenché que si la particule examinée entre en intersection avec une particule appartenant à l’un de ces groupes.

Ceci diffère de la propriété `groups`. La propriété `groups` sélectionne les particules susceptibles d’être examinées, et si celles-ci répondent à d’autres critères (notamment le fait de se trouver dans les limites de l’ ParticleAffector, modifiées par la forme), elles seront alors testées à nouveau pour vérifier si elles entrent en collision avec 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 ne sera pas émis si une particule est prise en compte par l'ParticleAffector, mais n'est en réalité modifiée d'aucune manière.

Dans le cas particulier où un « ParticleAffector » n’a aucun 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 souhaitez exécuter du code qui affecte les particules elles-mêmes). Comme cela exécute du code JavaScript pour chaque particule, il n’est pas recommandé d’utiliser ce signal avec un système de particules à fort volume.

(x, y) correspond à 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.